allo...
voici comment ma base de données est créé.
Mon pb viens du faire que si mon application est fermé et que la base de donnée est encore ouverte, la BD deviens corrompue!
C'est tannant car ont est pas a l'abris d'une coupure de courant ou d'un ctrl+alt+supp!!!
Option Explicit
Private Cat As New ADOX.Catalog
Private cmdado As New ADODB.command
' Recordset pointant vers 1 enregistrement
Private rsProject As New ADODB.Recordset ' Table Project
Private rsImages As New ADODB.Recordset ' Table Images
Private rsData As New ADODB.Recordset ' Table Data
Private Connection As New ADODB.Connection ' Connection pour le Delete Data
'**************************************************************************'
'*** Function-- CreateDB ***'
'*** Description: Création de la Base de Données ***'
'**************************************************************************'
Public Function CreateDB(link As String)
Dim Tbl As New ADOX.Table
' Création de la Base de Données
Cat.Create "provider=microsoft.jet.oledb.3.51;" & "Data source =" & link & ";"
Connection.ConnectionString = "provider=microsoft.jet.oledb.3.51;" & "Data source =" & link & ";"
' Ajout de la table Project
With Tbl
.Name = "Project"
.Columns.append "Log Nb", adChar, 50
.Columns.append "Sample Nb", adChar, 50
.Columns.append "Name", adChar, 50
.Columns.append "Path", adChar, 255
.Columns.append "Images From", adChar, 255
.Columns.append "Calibration", adDouble
End With
Cat.Tables.append Tbl
Set Tbl = Nothing
' Ajout de la table Images
With Tbl
.Name = "Images"
.Columns.append "CalculDone", adBoolean
.Columns.append "BorderDone", adBoolean
.Columns.append "SplitDone", adBoolean
.Columns.append "ClassDone", adBoolean
.Columns.append "Name", adChar, 50
.Columns.append "Dimension", adChar, 50
End With
Cat.Tables.append Tbl
Set Tbl = Nothing
' Ajout de la table Data
With Tbl
.Name = "Data"
.Columns.append "Name", adChar, 50
.Columns.append "Indice", adInteger
.Columns.append "Class", adInteger
.Columns.append "Wall Area", adDouble
.Columns.append "Lumen Area", adDouble
.Columns.append "Fibre Per", adDouble
.Columns.append "Lumen Per", adDouble
.Columns.append "CenterLine", adDouble
.Columns.append "Fibre Width", adDouble
.Columns.append "Fibre Thick", adDouble
.Columns.append "Max Diam", adDouble
.Columns.append "Min Diam", adDouble
.Columns.append "Mean Diam", adDouble
.Columns.append "Aspect Ratio", adDouble
End With
Cat.Tables.append Tbl
Set Tbl = Nothing
' Activation des Recordset
ActiveDB
End Function
'**************************************************************************'
'*** Function-- ActiveDB ***'
'*** Description: Activation des Recordset ***'
'**************************************************************************'
Private Function ActiveDB()
' Initialisation
cmdado.ActiveConnection = Cat.ActiveConnection
cmdado.CommandText = " select * from Project"
' Activation de la table Project
rsProject.CursorLocation = adUseClient
rsProject.CursorType = adOpenDynamic
rsProject.LockType = adLockOptimistic
rsProject.Open cmdado
' Activation de la table Images
cmdado.CommandText = " select * from Images"
rsImages.CursorLocation = adUseClient
rsImages.CursorType = adOpenDynamic
rsImages.LockType = adLockOptimistic
rsImages.Open cmdado
' Activation de la table Data
cmdado.CommandText = " select * from Data "
rsData.CursorLocation = adUseClient
rsData.CursorType = adOpenStatic
rsData.LockType = adLockBatchOptimistic
rsData.Open cmdado
End Function