DBGridç»ä»¶æ¯ç¨æ¥æ¾ç¤ºæ°æ®è¡¨çã
Delphiæ°æ®åºå¤ç
第ä¸è BDEãADOãInterBaseådbExpress
Delphiä¸å¤çæ°æ®åºä¸»è¦æ两ç§æ¹æ³ï¼ä¹å°±æ¯BDEãADOï¼ä»Delphi
6.0å¼å§è¿å å
¥äºä¸ç§dbExpressæ¹æ³ã å¦å¤ï¼Delphiè¿æä¾äºä¸é¨å¤
çBorland å
¬å¸èªå·±çæ°æ®åºäº§åInterBase æ°æ®åºçä¸é¨çæ¹æ³ã
BDEï¼Borland Databas Engineï¼ï¼ æ¯Delphiä¸æå¤èçææ¯ï¼ä»
delphi 2.0å å
¥BDE ææ¯ä»¥åï¼ä¸ç´æ¯Delphiå¤çæ°æ®åºçäºå®ä¸çæ
åãBDE æ¯ä¸ä¸ªåºäºé©±å¨ç¨åºçä½ç³»ç»æï¼æ¯ä¸ç§æ°æ®æ ¼å¼ææ°æ®æºé½
æä¸ç§é©±å¨ç¨åºæ¥é©±å¨ç¸è¿çæ°æ®æºãBDE å¯ä»¥å¾å¥½çæ¯æç°å¨ææµè¡
çODBC APIæ¹æ³ï¼
ODBCæ¯ä¸ç§C/C++ åºç¨ç¨åºç¼ç¨æ¥å£ï¼API ï¼ï¼æ 论æ¯å¯¹ä»»ä½ä¸ç§
客æ·/ æå¡å¨å
³ç³»åæ°æ®åºç®¡çç³»ç»ï¼RDBMS ï¼ï¼è¿æ¯ææµè¡ç´¢å¼é¡ºåº
访é®æ¹æ³ï¼ISAMï¼æ°æ®åºï¼JetãFoxproï¼ï¼ é½è½å¾å¥½ç访é®ã
åæ¶ï¼ç±äºBDE ç驱å¨ç¨åºä¸»è¦ç´æ¥æ¥èªäºç¬¬ä¸æ¹å¼ååï¼æ以ï¼
对äºåOracleè¿äºé微软çæ°æ®åºï¼æ§è¡æçä¸æ¯è¾é«ãæ£æ¯è¿äºç¹ç¹ï¼
使BDE ææ¯è¿æ¯å¾å°äºå¾å¤æ°æ®åºå¼åç¨åºåç欢è¿ã
ADO ææ¯æ¯å¾®è½¯æåºæ¥çå¤çå
³ç³»åæ°æ®åºåéå
³ç³»åæ°æ®åºçæ°
ææ¯ï¼å®åºäºå¾®è½¯è¢«ç§°ä¸ºOLE DBçæ°æ®è®¿é®æ¨¡å¼ï¼å®æ¯ä¸é¨ä¸ºäºç»å¤§è
å´åä¸æ°æ®æºæä¾è®¿é®è设计çï¼å
æ¬ä¼ ç»çå
³ç³»åæ°æ®è¡¨ãçµåé®ä»¶
ç³»ç»ãå¾å½¢æ ¼å¼ãInternetèµæºçãADO æéå
åæ´å°ï¼æ´éå大æµé
å大äºå¡éçç½ç»è®¡ç®æºç³»ç»ã
ADO 顶å±æä¸ä¸ªå¯¹è±¡ï¼ConnectionãCommandãRecordsetã
Connectionç¨ä»¥æå®æ°æ®æºï¼å»ºç«åæ°æ®æºçè¿æ¥ã
Command 对象ç¨ä»¥å¯¹æ°å§æºæ§è¡æå®çå½ä»¤ï¼å¯ä»¥æ¥åSQL è¯å¥ï¼
表ååå¨è¿ç¨çå称ï¼æ§è¡SQL æ¥è¯¢ï¼æ´æ°æ°æ®ï¼æå
¥çºªå½çã
Recordset 对象表示çæ¯æ¥èªè¡¨æå½ä»¤æ§è¡ç»æçè®°å½å
¨éï¼æ纵
æ¥èªæä¾è
çå ä¹æææ°æ®ã
ç±äºADO ææ¯çè¿
éæ®åï¼ä»Delphi 5.0 å¼å§ï¼å å
¥äºADO ææ¯
ç模åï¼å¹¶éæ¥æ为Delphiæ°æ®åºè®¾è®¡ç主æµãä½æ¯ï¼åVBçADODC ç¸
æ¯ï¼å®è¿æ¯ææä¸åçï¼å¨æ°æ®ç»å®ä¸ï¼å®æ´å¤çå¸æ¶äºBDE çç¹ç¹ï¼
以åå°ååæ¥çç¨åºå
¼å®¹ï¼åæ¶ï¼å®åå¯ä»¥æ¥åæ åADO ææ¯çåç§å±
æ§åæ¹æ³ï¼å¨æ¥åè¿äºå±æ§åæ¹æ³æ¶ï¼å®æ¯åæ°æ®ç»å®æ§ä»¶è±ç¦»çï¼å½
ç¶ä»æç§æä¹ä¸æ¥è¯´ï¼è¿ç§æ¹æ¡æé«äºæ§è¡æçï¼ç»è®¾è®¡äººå以æ´å¤ç
éæ©ã
dbExpress æ¯Delphi 6.0å å
¥çææ°çæ°æ®åºæ¨¡åï¼å®ä¸ä½¿ç¨ç¼åï¼
å¯ä»¥å¿«éæµè§å¤§éçæ°æ®ï¼ä½æ¯ï¼ä¸ä½¿ç¨ç¼åå°±ä¸è½æ´æ¹ï¼æ以å®çæ
åæ¹å¼æ¯åªè¯»çãå®ä¸ä¸ªéè¦çç¹ç¹æ¯äº¤åå¹³å°ï¼å¯ä»¥åLinux æ°æ®åº
è¿æ¥ï¼é度ç¸å½å¿«ã
ä¸é¢ç讨论ï¼å°ä»¥ADO ææ¯ä¸ºä¸»çº¿ï¼æåå说æBDE ådbExpress
çåºç¨æ¹å¼ã
第äºè ADO é¢æ¿ç主è¦ç»ä»¶
ADO é¢æ¿ä¸å
±æ7 个ç»ä»¶:
ADOConnection: 主è¦ç¨äºå»ºç«æ°æ®åºçè¿æ¥ï¼
ADOdataSetï¼ADO æååæä½æ°æ®åºç主è¦æ°æ®éï¼å¯ä»¥ç´æ¥è¿æ¥
å°æ°æ®åºï¼ä¹å¯ä»¥éè¿ ADOConnectionè¿æ¥å°æ°æ®åºã
ADOtableï¼ä¸»è¦ç¨ä»¥æä½åæåå个åºè¡¨çæ°æ®ï¼å¯ä»¥ç´æ¥è¿æ¥å°
æ°æ®åºï¼ä¹å¯ä»¥éè¿ ADOConnectionè¿æ¥å°æ°æ®åºã
ADOqueryï¼éè¿SQL è¯è¨æåæ°æ®ï¼å
¶è¿æ¥æ°æ®åºçæ¹å¼åå两ç§
ä¸æ ·ã
ADOStoredProcï¼ è¿ä¸ªç»ä»¶ä¸é¨ç¨äºè¿è¡æ°æ®åºä¸çåå¨è¿ç¨ã
ADOCommandï¼è¯¥ç»ä»¶ç¨äºè¿è¡ä¸äºSQL å½ä»¤ï¼è¿ä¸ªç»ä»¶å¯ä»¥åæ¯æ
æ°æ®éçç»ä»¶ä¸èµ·ä½¿ç¨ï¼ä¹å¯ä»¥ç´æ¥ä»ä¸ä¸ªåºè¡¨ä¸æåä¸ä¸ªæ°æ®éã
RDSConnectionï¼ ä¸ä¸ªè¿ç¨æä¸å°è®¡ç®æºä¼ éå°å¦ä¸ä¸ªè¿ç¨æ计ç®
æºçæ°æ®éåã
为äºè¿æ¥æ°æ®ç»å®æ§ä»¶ï¼ä¸è¿°ç»ä»¶å¾å¾è¦åå¤äºData Access ä¸ç
Datasourceé
å使ç¨ã
å¯ä»¥çåºï¼åVBçADODC ä¸åçï¼Delphiä¸è§£å³åä¸ä¸ªé®é¢æä¾äº
å¤ç§æ¹æ¡ï¼çèµ·æ¥ä¼¼ä¹å¢å äºéº»ç¦ï¼ä½æ¯å´å¯ä»¥ç»ç¨åºåæ´å¤§çèªç±ç©º
é´ï¼ä¾¿äºè®¾è®¡åºé«æççæ°æ®åºç¨åºæ¥ã
ä¸é¢éè¿å 个ä¾åæ¥è¯´æADO æ§ä»¶çç¨æ³ã
第ä¸è ADOtableç»ä»¶
ADOtableãADOdataSetãADOqueryåADOStoredProcé½ç»§æ¿äºåä¸
个ç¶ç±»TCustomADODataSetï¼æ以ï¼å¨å±æ§äºä»¶åæ¹æ³ä¸æå¾å¤ç¸ä¼¼ç
å°æ¹ï¼ä½å®ä¸»è¦æ¯é对æ°æ®åºä¸ç表è¿è¡æä½ã
ADO -ãADOtable
å±æ§ï¼
Name='æ§ä»¶å'
ConnectionString='è¿æ¥å符串'
å¯ä»¥éè¿ç¹å»å³è¾¹çæé®ï¼éè¿å导建ç«æ°æ®æºãææ¶åéè¦
ç¥éç¸å¯¹è·¯å¾ï¼å¯ä»¥ç¨ä¸é¢çæ¹æ³æ¾å°ç¨åºå½åçè·¯å¾ï¼
tpath:=ExtractFilepath(Application.Exename);
æ件åï¼=Tpath+'..\data\Test.mdb'
表ææ°æ®åºå¨å½åç¨åºä¸ä¸å±çDataæ件夹ä¸ã
TableName='表å'
Active=true
è¿å°±æ¿æ´»äºæ°æ®æºï¼ä¸ºäºåç»å®æ§ä»¶èç³»ï¼è¦å¢å ä¸ä¸ªDadaSource
æ§ä»¶ãäºå®ä¸ï¼ææçç»å®æ§ä»¶é½æ¯åDadaSourceèç³»ã
Data Access-ãDadaSource
å±æ§ï¼
Dataset=ADOtable.Name
å å
¥ç»å®æ§ä»¶ï¼
Data Controls-ã
DBgridï¼è¡¨æ ¼ï¼
å±æ§
DadaSource='DadaSource.Name'
DBNavigatorï¼å¯¼èªæ¡ï¼
å±æ§
DadaSource='DadaSource.Name'
è¿è¡ä¸ä¸å¯ä»¥çåºå
³ç³»
ä¸é¢ä»ç»ä¸ä¸ADOtableçä¸äºéè¦çæ¹æ³ï¼è¿äºæ¹æ³å¤§é¨ååTable
æ¯å
¼å®¹çã
为äºä¾¿äºåè¿°ï¼ADOtableæ§ä»¶çNameå®ä¸º ADOtable1
1ï¼ç§»å¨æé
第ä¸ä¸ª: ADotable1.First;
æåä¸ä¸ª: ADotable1.Last;
ä¸ä¸ä¸ª: ADotable1.Next;
åä¸ä¸ª: ADotable1.Prior;
2ï¼ä»å段ä¸ååºæ°æ®
éè¿å¦ä¸æ¹æ³å¯ä»¥è®¿é®å段çå¼
ADOtable1.FieldValues['å段å']
ADOtable1.Field[ç´¢å¼å¼]
å¨è¯»åå段çæ¶åï¼åæ¯æ ¹æ®éè¦å¯ä»¥å ä¸å¼ºå¶ç±»å转æ¢
ä¾å¦ï¼
Edit1.text:=ADOtable1.Field[0].AsString;
ç¨ä¸é¢çæ¹æ³å¯ä»¥å»é¤å段çæ§è´¨ï¼
ADOtable1.fielddefs[ç´¢å¼å¼].name; å段å
ADOtable1.fielddefs[ç´¢å¼å¼].Size; å段大å°
ADOtable1.fielddefs[ç´¢å¼å¼].Datatype; å段å±æ§
3ï¼ä¿®æ¹æ°æ®ï¼
ä¿®æ¹æ°æ®çæ¶åï¼éè¦å
建ç«EDITæ¹æ³ï¼ç¶åç¨Postæ¹æ³æè½ç
æ£çåå
¥ã
ADOtable1.edit;
ADOtable1.FieldValues['å§å']:='çç§ç´';
ADOtable1.post;
4ï¼å¢å ä¸æ¡ç©ºçºªå½ï¼ ADOtable1.append;
æ°å¢çºªå½ä¹å¯ä»¥ç¨å¦ä¸æ¹æ³ï¼å¨æ°å¢çºªå½çåæ¶è¾å
¥æ°æ®
ADOtable1.appendRecord(xxx,xxx,xxx,....)ï¼
5ï¼å é¤å½å纪å½ï¼ADOtable1.delete;
å¦æå¨ADOtable1çOnBeforeDeleteæ¹æ³ä¸åä¸ï¼
if messagedlg('ç¡®å®è¦å é¤åï¼',mtinformation,[mbyes,mbno],
0)=mrno then abort();
å¯ä»¥å®ç°å é¤åçæ示ã
6ï¼è¿æ»¤
å¯ä»¥ç¨å¦ä¸çæ¹æ³å®ç°æ°æ®çè¿æ»¤
å¨ADOtable1çOnFilterRecordæ¹æ³ä¸åä¸ï¼
Accept:=(æ¡ä»¶);
ç¶å
ADOtable1.filtered:=true; 为å®ç°è¿æ»¤ã
ADOtable1.filtered:=false; 为解é¤è¿æ»¤ã
7ï¼æéå¨æ件ç头尾
æéå¨æåä¸æ¡è®°å½ä¹å ADOtable1.Eof
æéå¨ç¬¬ä¸æ¡è®°å½ä¹å ADOtable1.Bof
å¦æ¤å¯ä»¥å®ç°å¯¹æ°æ®åºçéå
form1.ADOtable1.first;
while not form1.ADOtable1.eof do
Begin
.......
form1.ADOtable1.next;
End;
8ï¼æ¤å¤ï¼ ADOtableç»ä»¶è¿ç»§æ¿äºADO ä¸çRecordSet对象å ä¹
å
¨é¨å±æ§åæ¹æ³ï¼ç®è¿°å¦ä¸ï¼
with adoTable1.Recordset do
begin
//å±æ§
PageSize ä¸é¡µæå
å«çè®°å½æ°
PageCount æ°æ®ç页æ°
AbsolutePage; å½åè®°å½æå¨é¡µ
AbsolutePosition; å½åè®°å½çåºå·ä½ç½®
BOF; æéå¨ç¬¬ä¸ä¸ªè®°å½ä¹å
EOF; æéå¨æåä¸ä¸ªè®°å½ä¹å
//æ¹æ³
AddNew fieldList,Values; å建æ°è®°å½ï¼å
¶ä¸fieldList为ç¨æ°
ç»è¡¨ç¤ºçå段åéï¼Values为ç¨æ°ç»è¡¨
示çæ°æ®éã
Cancel; åæ¶ä¸ä¸æ¥æä½çä¿®æ¹
Update Fields,Values; ä¿å对å½åè®°å½æä½çä¿®æ¹
Delete; å é¤å½åè®°å½
Move(n); 移å¨n æ¡è®°å½
MoveFirst; 移å¨å°ç¬¬ä¸æ¡çºªå½
MoveLast; 移å¨å°æåä¸æ¡çºªå½
MoveNext 移å¨å°ä¸ä¸æ¡çºªå½
MovePrevious 移å¨å°ä¸ä¸æ¡çºªå½
Requery; éè¿ä»æ°æ§è¡å¯¹è±¡æåºäºçæ¥è¯¢ï¼ä»¥
æ´æ°RecordSet 对象ä¸çæ°æ®ã
end;
使ç¨Recordset 对象æ¥å¤çæ°æ®éçæ°æ®ï¼ä¼åç°æ°æ®å¸®å®æ§ä»¶çæ
éä¸è¬ä¸ä¼è·ç移å¨ï¼è¿å®é
ä¸ç»è®¾è®¡è
æä¾äºå¦ä¸ä¸ªå¨åå°å¿«éå¤çæ°
æ®çæ¹æ³ã
éå½ï¼å
³äºTActionListæ§ä»¶ç使ç¨
å¨Standardé¢æ¿ï¼æä¾äºä¸ä¸ªTActionList æ§ä»¶ï¼å®éä¸äºå¤§é¨åæ
é®ç使ç¨æ¹æ³ï¼å¯ä»¥ç®åæé®ç设计ã
æ¹æ³ï¼
è°å
¥TActionListï¼åå»ï¼å¯ä»¥çå°ä¸ä¸ªé¢æ¿ï¼å³é® -ãNew Standard
Action éæ© Datasatä¸çéå½çæ§å¶ï¼å¯ä»¥éæ©å¤ä¸ªã
以åå å
¥çå¼å
³ï¼åªè¦å¨å±æ§Action ä¸éæ©éå½ç项ç®å°±å¯ä»¥äºï¼ä¸
éè¦ä¸é¨ç¼ç¨ï¼å®ä¾è§âActionListåºç¨âã
第åè ADOQueryç»ä»¶
åADOtableç»ä»¶ä¸æ ·ï¼ADOquery继æ¿äºåä¸ä¸ªç¶ç±»TCustomADODataSetï¼
æ以ï¼ä¸é¢è¯´å°çADOtableå±æ§äºä»¶åæ¹æ³åºæ¬ä¸æ¯éç¨çï¼ä½å®ä¸»è¦æ¯
é对æ°æ®åºä¸çSQL å½ä»¤è¿è¡æä½ã
ä¸é¢ä¸»è¦è¯´ä¸ä¸ADOqueryç¹æ®çå°æ¹ã
1ï¼SQL å±æ§
SQL æ¯TStringsç±»åçå±æ§ï¼å
å«äºADOqueryç»ä»¶è¦æ§è¡çSQL å½ä»¤ï¼
æ¯ADOqueryæ为éè¦çå±æ§ä¹ä¸ã
å¨åºç¨ç¨åºä¸ï¼éè¦è°ç¨Openæ¹æ³æè
ExecSQL æ¹æ³æ¥æ§è¡å¨SQL ä¸
çå½ä»¤ãå¨è®¾è®¡é¶æ®µï¼å¯ä»¥å©ç¨å±æ§ç¼è¾èµ·æ¥ç¼åã
ä¾å¦ï¼
Width ADOquery do
Begin
//éæ°åå
¥æ¶ï¼è¦å
³éåæ¥çæ¥è¯¢
Close;
width SQL do
Begin
//å 为Addæ¯å¨åæ¥çåºç¡ä¸å å
¥ï¼æ以å
æ¸
é¤åæ¥çSQLå½ä»¤
Clear;
Add('selsct ç¼å·,å§å,å¥é')
Add('From å¥é表')
End;
//æ§è¡SQL å½ä»¤
Open;
End;
æ¥è¯¢å½ä»¤ä¹å¯ä»¥è¿æ ·æ¥åï¼
s1:='ç¼å·';
s2:='å§å';
s3:='éé¢';
with ADOquery1 do
begin
sql.Clear;
SQL.Add('select ');
SQL.Add(s1+','+s2+','+s3);
SQL.Add(' From å¥é ');
execsql;
active:=true;
end;
æææ¯ä¸æ ·çã
第äºè ADOConnection å ADODataSet
è½ç¶ADOTableåADOQueryç»ä»¶å¯ä»¥é常ç®åçè¿æ¥æ°æ®åºï¼ä½æ¯å½é
è¦æ´å ç²¾ç»çæ§å¶æ°æ®åºçæ¶åï¼å¾å¾éè¦åºç¨ADO æ´å¤çæ¹æ³ï¼æ们ç¥
éï¼æ¯æADO ç主è¦ç±Connectionï¼Commandï¼Recordsrtä¸ä¸ªå¯¹è±¡ç»æï¼
对åºçå°±æADOConnectionåADOCommandæ§ä»¶ï¼èRecordsrt对象å±æ§åæ¹
æ³ï¼å°è£
å¨ADODataSetä¸ï¼åæ¶ADODataSetæ¬èº«ï¼ä¹å
·å¤åADOtableç»ä»¶
ç¸åç对æ°æ®ç»å®æ§ä»¶æ§å¼çå±æ§åæ¹æ³ã
è¿å°±å¤§å¤§æé«äºå¯¹æ°æ®åºçæ§å¶è½åã
å¨ADO 顶å±æä¸ä¸ªå¯¹è±¡ä¸Connectionå¤å¨æ顶å±ï¼ç¨ä»¥æå®æ°æ®æºï¼
建ç«åæ°æ®æºçè¿æ¥ãæ以ï¼ADOConnectionå¿
é¡»åå
¶å®çæ°æ®æ§ä»¶è¿æ¥
æææï¼æ常ç¨çå°±æ¯åADODataSeté
åã
ä¸é¢é¦å
ä»ç»è¿æ¥æ¹æ³ï¼ç¶åå讨论å
¶å®çé®é¢
1ï¼ADOConnectionçå å
¥åè¿æ¥
å å
¥ADOConnection
å±æ§ï¼ConnectionString='è¿æ¥å符串'
å å
¥ADODataSat
å±æ§ï¼Connection='ADOConnection1' ..... (ADOConnection,Name)
CommandType=cmdtable ...使ç¨è¡¨è¿æ¥
CommandText æ ¹æ®ä¸é¢çéæ©ï¼æéæ©è¡¨ï¼æåºç°SQL ç¼è¾æ¡ã
Active=True æ¿æ´»ã
å å
¥DataSource
å±æ§ï¼Dataset=ADODataSat å®æè¿æ¥ï¼åè¿æ¥æ°æ®ç»å®æ§ä»¶ã
2ï¼ADOConnectionçéè¦å±æ§åæ¹æ³
å±æ§ï¼
a).Attributes
设置è¿æ¥çæ°æ®åºèªå¨å¤çäºå¡çè½å
xCommitRetainingï¼æ交ä¸ä¸ªäºå¡åèªå¨å¼å§ä¸ä¸ªæ°äºå¡
xAbortRetaining ï¼åéä¸ä¸ªäºå¡çåæ¶å¼å§ä¸ä¸ªæ°äºå¡
b).Connected
æ è¯åæ°æ®åºçè¿æ¥åå¦å¤äºæ¿æ´»ï¼Trueï¼
æ¹æ³ï¼
c).Open(UserID,PassWord)
æå¼ä¸ä¸ªè¿æ¥ï¼å¯ä»¥æä¾ç¨æ·ååå¯ç ï¼
d).Cancel
å
³éæ°æ®åºçè¿æ¥
e).Close
éæ¾ææçç³»ç»å
³èèµæº
f).Execute æ§è¡ä¸ä¸ªSQL å½ä»¤ã
å®æ´ç表述æ¯
Execute(SQLå½ä»¤,该å½ä»¤è®¾è®¡çè®°å½æ°ç®,Option)
å
¶ä¸ï¼Optionçå¼å¦ä¸
eoAsyncExecute å¼æ¥æ§è¡æå®çå½ä»¤
eoAsyncFetch ç»å®Cacheå±æ§çå¼åï¼åå¼æ¥çåå¾æ°æ®
eoAsyncFetchNonBlocking éé»å¡å¼çº¿ç¨æ§è¡
eoExecuteNoRecords 没æè¿å纪å½
g).GetProcedureNames(List:Tstring);
è·åæ°æ®åºæå¡å¨ä¸çåå¨è¿ç¨å称ï¼è¿ç¨åä¿çå¨Listå
æ°ä¸ã
f).GetTableNames(List:Tstring;SystemTables:Boolean=False)
è·åæ°æ®åºçæ°æ®è¡¨ï¼è¡¨ååæ¾å¨Liståæ°ä¸ï¼SystemTables
æ示æ¯å¦è·åæ°æ®åºç³»ç»è¡¨çå称ï¼ç³»ç»è¡¨æ¯å
³äºæ°æ®åºç±»åå®ä¹
åç¨æ·ä¿¡æ¯çæ°æ®è¡¨ï¼æ¯æ°æ®åºæ¬èº«èªå¨äº§ççãå¨ç¹æ®ç设计ä¸ï¼
è¿ä¸ªè¡¨æ ¼å¯è½ä¼æç¨ã
3ï¼ADODataSetçå±æ§åæ¹æ³
æ们å¨ADOTableä¸è®¨è®ºçå±æ§åæ¹æ³ï¼å ä¹é½å¯ä»¥å¨ADODataSetä¸å¾
å°åºç¨ï¼ä½è¿æå 个ç¹æ®çå±æ§ï¼
CommandType
主è¦ç¨äºæ§å¶CommandTextå±æ§çç¶æï¼å
¶ä¸ï¼
cmdtable ...CommandText使ç¨â表åâè¿æ¥
ï¼å
é¨æ¯åäºSQL 对ååçæ¥è¯¢ï¼ï¼
cmdTableDirect ...CommandText使ç¨â表åâè¿æ¥
ï¼å
é¨ä¸åSQL ï¼èæ¯çæ£ç表åè¿æ¥ï¼ï¼
cmdtext ....使ç¨SQLå½ä»¤ææ¬ï¼
cmdfile ....CommandTypeå±æ§å¼ä½ä¸ºæä¹
çæ件åï¼
cmdStoredProc...CommandTypeå±æ§å¼ä½ä¸ºåå¨è¿ç¨å称
æ¥è®¡ç®ï¼
cmdUnKnown ....ä¸ç¥éï¼é»è®¤ä¸ºSQLï¼
CommandText
æ ¹æ®CommandTypeç设置ï¼åæä¾è
ååºâ表åâæSQL å½ä»¤ã
温馨提示:答案为网友推荐,仅供参考