Fråga : Från BCD till ADO

Kära experter,

I har ett BCD-exempel, och jag önskar att konvertera det till ADO.
It innehåller 1 del- TDatabase, och 6 TQuery-components.
I kan inte figurera ut med kodifiera och designcoden av the
example vad strukturera av databasen är!
1. Hur många bordlägger är där och hur dem kallas?
2. Vad är kolonnen namnger av varje bordlägger?
2. Hur är bordlägger förbindelse med eachother?
3. Och finns det primärt, och utländskt stämm?
Can någon figurerar ut vad strukturera av databasisso mig kan skapa en fördefinerad MS-Accessdatabas?

Who är villig att hjälpa mig?
I har satt någon av tillvägagångssätten och designcoden som
comes med den del- TDatabasen och 6na TQuery-components
in coden-section.

Peter Kiers
> för
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:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
" codeBody " " >object NeedApptsQuery för class= " för =: D1) och (EndDate <=: D2))”) Lämnade = 392 Överträffa = 560 ParamData = < objekt DataType = ftString Namnge = ”SchedName”, ParamType = ptUnknown avsluta objekt DataType = ftDate Namnge = ”D1”, ParamType = ptUnknown avsluta objekt DataType = ftDate Namnge = ”D2”, ParamType = ptUnknown end> avsluta anmärka ApptSchedulesQuery: TQuery DatabaseName = ”UTF”, RequestLive = True SQL.Strings = ( ”Välj * från GroupLink”, ”Var ApptID =: ApptID”) Lämnade = 424 Överträffa = 560 ParamData = < objekt DataType = ftString Namnge = ”ApptID”, ParamType = ptUnknown end> avsluta anmärka GetApptQuery: TQuery DatabaseName = ”UTF”, RequestLive = True SQL.Strings = ( ”Välj * från GroupAppt”, ”Var ApptID =: ApptID”) Lämnade = 456 Överträffa = 560 ParamData = < objekt DataType = ftString Namnge = ”ApptID”, ParamType = ptUnknown end> avsluta anmärka DeleteApptLinkQuery: TQuery DatabaseName = ”UTF”, SQL.Strings = ( ”Borttagnings från GroupLink”, ”Var ApptID =: ApptID”) Lämnade = 488 Överträffa = 560 ParamData = < objekt DataType = ftString Namnge = ”ApptID”, ParamType = ptUnknown end> avsluta anmärka DeleteApptQuery: TQuery DatabaseName = ”UTF”, SQL.Strings = ( ”Borttagnings från GroupAppt”, ”Var ApptID =: ApptID”) Lämnade = 520 Överträffa = 560 ParamData = < objekt DataType = ftString Namnge = ”ApptID”, ParamType = ptUnknown end> avsluta anmärka SchedulesQuery: TQuery DatabaseName = ”UTF”, SQL.Strings = ( ”Valt distinkt (SchedName) från GroupLink”) Lämnade = 552 Överträffa = 560 avsluta anmärka dbUTF: TDatabase DatabaseName = ”UTF”, DriverName = ”STANDART”, LoginPrompt = falskt Params.Strings = ( ”STANDARD DRIVER=PARADOX”, ”MÖJLIGGÖRA BCD=FALSE”), SessionName = ”standard”, Lämnade = 448 Överträffa = 528 avsluta avsluta (*---------------------------------------------------*) tillvägagångssätt TMainForm.utfSchedMgrDeleteAppt (avsändare: TObject; Appt: TJvTFAppt); börja Med DeleteApptQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; ExecSQL; Avsluta; Med DeleteApptLinkQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; ExecSQL; Avsluta; avsluta; (*---------------------------------------------------*) tillvägagångssätt TMainForm.utfSchedMgrLoadBatch (avsändare: TObject; BatchName: stränga; BatchStartDate BatchEndDate: TDate); var Appt: TJvTFAppt; NewAppt: Boolean; börja Med NeedApptsQuery gör Börja ParamByName (”D1”) .AsDate: = BatchStartDate; ParamByName (”D2”) .AsDate: = BatchEndDate; ParamByName (”SchedName”) .AsString: = BatchName; Öppet; Först; Stunder inte EOF gör Börja utfSchedMgr.RequestAppt (FieldByName (”ApptID”) .AsString, Appt, NewAppt); Om NewAppt därefter Börja Appt.SetStartEnd (FieldByName (”StartDate”) .AsDateTime, FieldByName (”StartTime”) .AsDateTime, FieldByName (”EndDate”) .AsDateTime, FieldByName (”EndTime”) .AsDateTime); Appt.Description: = FieldByName (”beskrivningen”) .AsString; Appt.AlarmEnabled: = FieldByName (”AlarmEnabled”) .AsBoolean; Appt.AlarmAdvance: = FieldByName (”AlarmAdvance”) .AsInteger; Med ApptSchedulesQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; Öppet; Först; Stunder inte EOF gör Börja Appt.AddSchedule (FieldByName (”SchedName”) .AsString); Därefter; Avsluta; Nära; Avsluta; Avsluta; Därefter; Avsluta; Nära; Avsluta; avsluta; (*---------------------------------------------------*) tillvägagångssätt TMainForm.utfSchedMgrPostAppt (avsändare: TObject; Appt: TJvTFAppt); var I: Heltal; börja Med GetApptQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; Öppet; Om RecordCount > 0 därefter Redigera Annars Börja Sätt in; FieldByName (”ApptID”) .AsString: = Appt.ID; Avsluta; FieldByName (”StartDate”) .AsDateTime: = Appt.StartDate; FieldByName (”StartTime”) .AsDateTime: = Appt.StartTime; FieldByName (”EndDate”) .AsDateTime: = Appt.EndDate; FieldByName (”EndTime”) .AsDateTime: = Appt.EndTime; FieldByName (”beskrivning”) .AsString: = Appt.Description; FieldByName (”AlarmEnabled”) .AsBoolean: = Appt.AlarmEnabled; FieldByName (”AlarmAdvance”) .AsInteger: = Appt.AlarmAdvance; Posta; Nära; Avsluta; Med DeleteApptLinkQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; ExecSQL; Avsluta; Med ApptSchedulesQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; Öppet; För I: = 0 till Appt.ScheduleCount - 1 gör Börja Sätt in; FieldByName (”ApptID”) .AsString: = Appt.ID; FieldByName (”SchedName”) .AsString: = Appt.Schedules [I]; Posta; Avsluta; Nära; Avsluta; avsluta; (*---------------------------------------------------*) tillvägagångssätt TMainForm.utfSchedMgrRefreshAppt (avsändare: TObject; Appt: TJvTFAppt); börja Med GetApptQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; Öppet; Om RecordCount = 1 därefter Börja Appt.SetStartEnd (FieldByName (”StartDate”) .AsDateTime, FieldByName (”StartTime”) .AsDateTime, FieldByName (”EndDate”) .AsDateTime, FieldByName (”EndTime”) .AsDateTime); Appt.Description: = FieldByName (”beskrivningen”) .AsString; Appt.AlarmEnabled: = FieldByName (”AlarmEnabled”) .AsBoolean; Appt.AlarmAdvance: = FieldByName (”AlarmAdvance”) .AsInteger; Avsluta; Nära; Avsluta; Appt.ClearSchedules; Med ApptSchedulesQuery gör Börja ParamByName (”ApptID”) .AsString: = Appt.ID; Öppet; Först; Stunder inte EOF gör Börja Appt.AddSchedule (FieldByName (”SchedName”) .AsString); Därefter; Avsluta; Nära; Avsluta; avsluta; (*---------------------------------------------------*)
" klar "

Svar : Från BCD till ADO

PS.   hur man använder queries med ADO se http://delphi.about.com/od/database/l/aa050101a.htm

om du önskar att använda eg. Ms TAR FRAM och l5At ditt programbruk ZEOS-databasdelarna http://zeos.firmos.at/portal.php

, stor ms ACCESSS för fördel inte endast, men du kan använda därefter också serveren för ms SQL, MIN SQL, ..... - > störst böjlighet för service av mer databassystemes

 

Andra lösningar  
 
programming4us programming4us