OVH Cloud OVH Cloud

Question pour Sébastien de Database to Code

1 réponse
Avatar
Chris
bonjour,
comment fais tu pour savoir si un champ est clé primaire ?

merci a+

1 réponse

Avatar
Sébastien
Salut,
excuse moi pour la reponse si tardive j'etait en vacance,

tu veux dir quand je scannne la base de donnée ?
dans le code generer tu cherche cette class,

ClassBaseDonnerStructure

elle contient tout ce dont tu as beosin pour connaitre la structure de la
base de donnée,

je te met la fonction liste_pk qui te retourne la liste des cle primaire,


Public Function Liste_PK(Optional ByVal pReturnType As Boolean = False) As
Collection

'Table.Champs



Dim lCollection As New Collection

Dim row As DataRow

Dim adp As New OleDb.OleDbDataAdapter("", BaseDonne_Oledb)

'we can put restrictions on the data we want to recieve

Dim restrictions As Object() = New Object() {Nothing, Nothing}

Select Case Me.TypeBase

Case Enum_TypeProviderConnexion.Oledb

Dim schemaTable As DataTable =
BaseDonne_Oledb.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Primary_Keys,
restrictions)

'go through all the foreign keys displayed

For Each row In schemaTable.Rows

If pReturnType = True Then

Dim lType As Struct_PrimaryKey

Try

lType.COLUMN_GUID = row("COLUMN_GUID")

Catch ex As Exception

lType.COLUMN_GUID = ""

End Try

Try

lType.COLUMN_NAME = row("COLUMN_NAME")

Catch ex As Exception

lType.COLUMN_NAME = ""

End Try

Try

lType.COLUMN_PROPID = row("COLUMN_PROPID")

Catch ex As Exception

lType.COLUMN_PROPID = ""

End Try

Try

lType.ORDINAL = row("ORDINAL")

Catch ex As Exception

lType.ORDINAL = 0

End Try

Try

lType.PK_NAME = row("PK_NAME")

Catch ex As Exception

lType.PK_NAME = ""

End Try

Try

lType.TABLE_CATALOG = row("TABLE_CATALOG")

Catch ex As Exception

lType.TABLE_CATALOG = ""

End Try

Try

lType.TABLE_NAME = row("TABLE_NAME")

Catch ex As Exception

lType.TABLE_NAME = ""

End Try

Try

lType.TABLE_SCHEMA = row("TABLE_SCHEMA")

Catch ex As Exception

lType.TABLE_SCHEMA = ""

End Try

lCollection.Add(lType)

Else

Dim lTablePK As String = row(2)

Dim lChampsPK As String = row(3)

lCollection.Add(lTablePK & "." & lChampsPK)

End If

Next

Case Enum_TypeProviderConnexion.MySql

End Select

Return lCollection

End Function





a++

seb



"Chris" a écrit dans le message de news:
%
bonjour,
comment fais tu pour savoir si un champ est clé primaire ?

merci a+