我在用ADOQuery执行SQL语句时碰到的问题,请问什么回事?SQL语句已经生效,但程序报错。点解??????谢谢。
15 个解决方案
#1
详细点,把SQL语句贴出来
#2
DataModule3.TempQuery.SQL.Clear;
DataModule3.TempQuery.SQL.Add('pr_AddUser '''+edit5.Text+''','''+ edit1.Text +''','''+edit2.Text +''','''+ edit3.Text+''',''00000'',' + i );
DataModule3.TempQuery.Open;
DataModule3.TempQuery.SQL.Add('pr_AddUser '''+edit5.Text+''','''+ edit1.Text +''','''+edit2.Text +''','''+ edit3.Text+''',''00000'',' + i );
DataModule3.TempQuery.Open;
#3
是个插入操作。直接用SQL语句或用存储过程都一样的报错。
#4
这样用吧
with adoquery1 do
begin
sql.clear;
sql.text := '你的语句';
try
open;
except
execsql;
end;
end;
with adoquery1 do
begin
sql.clear;
sql.text := '你的语句';
try
open;
except
execsql;
end;
end;
#5
在前面写上
if DataModule3.TempQuery.Active=true then
DataModule3.TempQuery.Active:=False;
试一试呢?
if DataModule3.TempQuery.Active=true then
DataModule3.TempQuery.Active:=False;
试一试呢?
#6
楼上两位兄台的方法都试了,报错依旧。
#7
更正上面
if DataModule3.TempQuery.Active=Falsethen
DataModule3.TempQuery.Active:=True;
if DataModule3.TempQuery.Active=Falsethen
DataModule3.TempQuery.Active:=True;
#8
exception class EDatabaseError with message "CommandText does not return a result set
插入操作不会返回记录集的,用ExecSQL;Open是当有记录集时用的。
看一下帮助,
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to True.
插入操作不会返回记录集的,用ExecSQL;Open是当有记录集时用的。
看一下帮助,
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to True.
#9
还是不行。
#10
谢谢ququd(ququ)。想来这是正解了。谢谢。
#11
OK!!!! By the way, ExecSql之后要不要Close呢???
#12
你想CLOSE就CLOSE,呵呵
#13
谢谢各位。
#14
我的方法要脱离编译环境哈!
#15
我也遇到同样的问题 谢谢 各位大侠呀
#1
详细点,把SQL语句贴出来
#2
DataModule3.TempQuery.SQL.Clear;
DataModule3.TempQuery.SQL.Add('pr_AddUser '''+edit5.Text+''','''+ edit1.Text +''','''+edit2.Text +''','''+ edit3.Text+''',''00000'',' + i );
DataModule3.TempQuery.Open;
DataModule3.TempQuery.SQL.Add('pr_AddUser '''+edit5.Text+''','''+ edit1.Text +''','''+edit2.Text +''','''+ edit3.Text+''',''00000'',' + i );
DataModule3.TempQuery.Open;
#3
是个插入操作。直接用SQL语句或用存储过程都一样的报错。
#4
这样用吧
with adoquery1 do
begin
sql.clear;
sql.text := '你的语句';
try
open;
except
execsql;
end;
end;
with adoquery1 do
begin
sql.clear;
sql.text := '你的语句';
try
open;
except
execsql;
end;
end;
#5
在前面写上
if DataModule3.TempQuery.Active=true then
DataModule3.TempQuery.Active:=False;
试一试呢?
if DataModule3.TempQuery.Active=true then
DataModule3.TempQuery.Active:=False;
试一试呢?
#6
楼上两位兄台的方法都试了,报错依旧。
#7
更正上面
if DataModule3.TempQuery.Active=Falsethen
DataModule3.TempQuery.Active:=True;
if DataModule3.TempQuery.Active=Falsethen
DataModule3.TempQuery.Active:=True;
#8
exception class EDatabaseError with message "CommandText does not return a result set
插入操作不会返回记录集的,用ExecSQL;Open是当有记录集时用的。
看一下帮助,
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to True.
插入操作不会返回记录集的,用ExecSQL;Open是当有记录集时用的。
看一下帮助,
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to True.
#9
还是不行。
#10
谢谢ququd(ququ)。想来这是正解了。谢谢。
#11
OK!!!! By the way, ExecSql之后要不要Close呢???
#12
你想CLOSE就CLOSE,呵呵
#13
谢谢各位。
#14
我的方法要脱离编译环境哈!
#15
我也遇到同样的问题 谢谢 各位大侠呀