DELPHI中求用ADO读写数据库的N种方法1 楼bluesky23(乐天_正在开发右半脑。。。^_^)回复于 2004-08-03 13:32:04 得分 10
AdoTable1.Close ;
AdoTable1.TableName:=tblName;
AdoTable1.Open;
AdoTable1.Filter:=<条件语句>;
with AdoTable1 do
begin
Edit;
// FieldByName('id').Value :=edtID.Text;
FieldByName('name').Value :=cmbName.Text ;
FieldByName('sex').Value :=edtSex.Text ;
Post;
end;
写由条件语句指定的记录。Top
2 楼bluesky23(乐天_正在开发右半脑。。。^_^)回复于 2004-08-03 13:33:27 得分 10
with AdoQuery1 do
begin
Close ;
SQL.Clear ;
SQL.Add(sqlStr);
Open;
edtId.Text:=FieldByName('id').Value;
edtName.Text:=FieldByName('name').Value;
edtSex.text:=FieldByName('sex').Value;
end;
用ADOquery实现Top
3 楼SunKinXing(飞火流星)回复于 2004-08-03 13:34:19 得分 10
通过SQL语句读写,
通过数据集直接读写
其实你的问题问的有点大,不明白的Top
4 楼juror(绝望生鱼片)回复于 2004-08-03 13:38:30 得分 0
就象 bluesky23(乐天_我一直在努力。。。^_^)
用不同的方法来读写。大家探论一下那个方法好,速度快。
Top
5 楼juror(绝望生鱼片)回复于 2004-08-03 13:40:13 得分 0
介绍一下用什么控件和实现方法就行Top
6 楼windindance(风舞轻扬·白首为功名)回复于 2004-08-03 13:40:37 得分 10
实用的方法,一种就够。Top
7 楼GoldShield(李柏岑)回复于 2004-08-03 13:44:04 得分 10
只要解决了问题.Top
8 楼xufenglong(天天向上)回复于 2004-08-03 13:44:10 得分 10
連接;
TempS := extractfilepath(Application.ExeName)+'DataBase\cdl.mdb';
DM.ADOConnection1 .ConnectionString :='';
DM.ADOConnection1 .ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ TempS +
';Persist Security Info=False';
DM.ADOConnection1 .Connected := false;
DM.ADOConnection1 .Connected := true;
讀寫
最好定義為過程,隨時調用
function ExecuteSQL(ActionQuery: TADOQuery; SQLString: String): boolean;
//功 能﹕執行SQL語句,注意無返回集,即使用DELETE\CREATE\INSERT INTO等。
//參 數﹕SQLString為SQL語句。
//返回值﹕運行正常返回true,否則返回false。
begin
result :=true;
with ActionQuery do
begin
close;
Sql.Clear;
Sql.Add(SQLString);
try
ExecSQL;
except
close;
result := false;
end;//try
end;//with
end;
function OpenSQL(ActionQuery: TADOQuery; SQLString: String): boolean;
//功 能﹕執行SQL語句,注意有返回集,即使用SELECT。
//參 數﹕ActionQuery 為執行的Query,SQLString為SQL語句。
//返回值﹕運行正常返回true,否則返回false。
begin
result := true;
with ActionQuery do
begin
close;
Sql.Clear;
Sql.Add(SQLString);
try
Open;
except
close;
result := false;
end;//try
end;//with
end;
Top
9 楼lwk_hlj(阿凯(学习oralce中))回复于 2004-08-03 13:47:50 得分 20
最好定義為過程,隨時調用
function ExecuteSQL(ActionQuery: TADOQuery; SQLString: String): boolean;
//功 能﹕執行SQL語句,注意無返回集,即使用DELETE\CREATE\INSERT INTO等。
//參 數﹕SQLString為SQL語句。
//返回值﹕運行正常返回true,否則返回false。
begin
result :=true;
with ActionQuery do
begin
close;
Sql.Clear;
Sql.Add(SQLString);
try
ExecSQL;
except
close;
result := false;
end;//try
end;//with
end;
有必要吗?
除非为了返回数据用这个
不然
adoConnection.execute 不也很好用吗?速度应该比这个好吧?Top
10 楼risingsoft(一苇渡江)回复于 2004-08-03 16:35:54 得分 10
我的一个程序里的代码;
(*增加一条明细记录到临时表*)
with dm.qryFZMX do
begin
Append;
FieldByName('CFBH').AsString:=edtCFBH.Text;
FieldByName('JSRQ').AsString:=FormatDateTime('YYYY-MM-DD',Date);
FieldByName('NBLS').AsString:=GetNextNBLS(edtCFBH.Text,2);
FieldByName('BM').AsString:=edtFZBM.Text;
FieldByName('PYBM').AsString:=UpperCase(edtFzPYBM.Text);
FieldByName('MC').AsString:=edtFZMC.Text;
FieldByName('LX').AsString:='';
FieldByName('JG').AsString:=edtFzJG.Text;
FieldByName('SL').AsString:=edtFzSL.Text;
FieldByName('JE').AsString:=FormatFloat('0.00',strtofloat(edtFzJG.Text)*
strtofloat(edtFzSL.Text));
try
Post;
except
Cancel;
ShowMess(' 错误:保存辅助明细数据失败! ',0);
end;
end;Top
11 楼jakefj(夢幻天使)回复于 2004-08-03 16:41:39 得分 10
用adoconnection1-->adoquery or adotable
或者直接用adoquery來連接