procedure TForm1.Button1Click(Sender: TObject);
var
FADOConnection:TADOConnection;
FADOQuery:TADOQuery;
begin
FADOConnection:=TADOConnection.Create(nil);
FADOConnection.LoginPrompt:=False;
FADOConnection.ConnectionString:='DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=test; USER=root; PASSWORD=123456';
FADOConnection.Open;
FADOQuery:=TADOQuery.Create(nil);
FADOQuery.Connection:=FADOConnection;
FADOQuery.SQL.Add('update tab1 set ldate=''2009.02.17 18:29:57'' where guid = ''{F8A4F2A9-15E5-4271-9F67-CF1BBAA80B02}'';');
FADOQuery.SQL.Add('update tab2 set ldate=''2009.02.17 18:29:57'' where ip=''114.105.71.163''');
ShowMessage(FADOQuery.SQL.Text);
FADOQuery.ExecSQL;
ShowMessage('OK');
end;单个语句可以执行,Show出来的结果到MySQL的查询管理器中也可以执行,应该是MySQL语法拼接错误或者就是ADOQuery根本不能执行多条,就用ADOQuery组件,不要提用其它的组件,如果ADO不能的话就单条执行了
解决方案 »
- 关于UDPsever监控客户端的问题
- 调用Dll的返回值问题
- 高分求助,ADO连接到数据执行查询的时候偶尔出现Cannot perform this operation on a closed dataset错误, 困扰很久的问题.
- 使用WebBrowser组件穿过代理服务器的疑问
- 请问有没有可以实现一条记录多行编辑的DBGrid控件呢。
- 两个控件的问题
- 再来一问,StringGrid中,如何使字符串居中?
- 我的存储过程要建立动态参数,我申明了P0: TParam,但是P0 := TParam.Create(Params.ptInput)编译出错,应该怎么写?
- 求delphi7.0的控件使用大全
- 下面这个是我根据INDY控件的DEMO改的一段程序,执行的时候老是出错
- SQL语句?
- ListBox控件中一行中使用,如何象RICHTXT一样,每个字都能改变不同字体和颜色啊?在线等啊
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);
var
FADOConnection:TADOConnection;
FADOQuery:TADOQuery;
str : TstringList;
i : integer;
begin
FADOConnection:=TADOConnection.Create(nil);
FADOConnection.LoginPrompt:=False;
FADOConnection.ConnectionString:='DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=test; USER=root; PASSWORD=123456';
FADOConnection.Open;
FADOQuery:=TADOQuery.Create(nil);
FADOQuery.Connection:=FADOConnection;
str := Tstringlist.create;
try
str.append('update tab1 set ldate=''2009.02.17 18:29:57'' where guid = ''{F8A4F2A9-15E5-4271-9F67-CF1BBAA80B02}'';');
str.append('update tab2 set ldate=''2009.02.17 18:29:57'' where ip=''114.105.71.163''');
for i := 0 to str.count -1 do
begin
FADOQuery.sql.text := Str.string[i];
FADOQuery.ExecSQL;
end;
finally
FreeANdNil(Str);
end;
ShowMessage('OK');
end;我上次就樣搞的。也不知道怎麼搞的,就是不能批量。也有可能還有我不知道的。不過CMD下是可能LOAD的,暈倒啊。
oracle可以这样,不知道mysql行不,如果支持事务应该就行吧
var
FADOConnection:TADOConnection;
FADOQuery:TADOQuery;
begin
FADOConnection:=TADOConnection.Create(nil);
FADOConnection.LoginPrompt:=False;
FADOConnection.ConnectionString:='DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=test; USER=root; PASSWORD=123456';
FADOConnection.Open;
FADOQuery:=TADOQuery.Create(nil);
FADOQuery.Connection:=FADOConnection;
FADOQuery.SQL.Add('update tab1 set ldate=''2009.02.17 18:29:57'' where guid = ''{F8A4F2A9-15E5-4271-9F67-CF1BBAA80B02}'';update tab2 set ldate=''2009.02.17 18:29:57'' where ip=''114.105.71.163''');
ShowMessage(FADOQuery.SQL.Text);
FADOQuery.ExecSQL;
ShowMessage('OK');
end;
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);
var
FADOConnection:TADOConnection;
FADOQuery:TADOQuery;
str : TstringList;
i : integer;
临时创建的,如果常用,最好用组件,创建一次是要点时间的。FADOQuery要不要FREE,你要注意一下。
EXECSQL实际上是在T-SQL中运行EXEC()这个过程~
即EXEC('update tab1 set ldate=''2009.02.17 18:29:57'' where guid = ''{F8A4F2A9-15E5-4271-9F67-CF1BBAA80B02}'')
EXEC不支持批处理,是单句执行~
你的语句showtext之后能执行是因为你的txt文本没有exec,所以T-SQL是以批处理的方式执行~