Het is me eindelijk gelukt om in Delphi een nieuwe database te maken en hieraan tabellen toe te voegen. Nu wil ik nog informatie toevoegen aan die tabellen, en dat doe ik volgens de manier zoals beschreven op about.delphi.com.
Als ik echter de data wil toevoegen dan krijg ik de volgende foutmelding:
Ik gebruik de volgden code:
Als ik echter de data wil toevoegen dan krijg ik de volgende foutmelding:
De fout is dus dat de dataset open is. Maar hoe close ik de dataset dan?? Het voor de hand liggende close werkt niet, op editmode zetten ook niet. Ik heb gezocht op google, maar ik kan het probleem niet goed genoeg omschrijven om wat te vinden.'ADOTable1: Cannot perform this operation on an open dataset'.
Ik gebruik de volgden code:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| procedure TForm1.SCToDataBase(VR: TVergelijkrec); var DataSource : string; dbName,cs : string; i : integer; begin //create DB if (SaveDialog1.Execute) then begin dbName:=SaveDialog1.FileName+'.mdb'; DataSource := 'Provider=Microsoft.Jet.OLEDB.4.0' + ';Data Source=' + dbName + ';Jet OLEDB:Engine Type=5'; ADOXCatalog1.Create1(DataSource); //connect DB ADOConnection1.ConnectionString := DataSource; ADOConnection1.LoginPrompt := False; ADOCommand1.Connection := ADOConnection1; for i:=0 to high(VR.Familie) do begin //add tables cs:='CREATE TABLE Family'+IntToStr(i+1)+ ' (' + 'Id TEXT(50),' + 'ProdOrder TEXT(50),' + 'ArtNr TEXT(50),' + 'VolgNr TEXT(50),' + 'Bewerking TEXT(50),' + 'Machinenummer TEXT(50),' + 'Bestelgroote TEXT(50),' + 'BEW_TIJD TEXT(50),' + 'OMS_TIJD TEXT(50),' + 'PROD_TIJD TEXT(50),' + 'ALTROUTE TEXT(50),' + 'DATUM_2 TEXT(50))'; ADOCommand1.CommandText := cs; ADOCommand1.Execute; AdoTable1.TableName:='Family'+IntToStr(i+1); with ADOTable1 do begin --> HIER VASTLOPER Insert; FieldByName('Id').Value := '2'; FieldByName('ProdOrder').Value := '10'; FieldByName('Machinenummer').Value := 'hetzal'; Post; end; |
[ Voor 12% gewijzigd door Oscar Mopperkont op 20-06-2004 15:50 ]