服务端执行数据库查询出错!问题出在哪? ( 积分: 50 )

  • 主题发起人 主题发起人 fire.bruin
  • 开始时间 开始时间
F

fire.bruin

Unregistered / Unconfirmed
GUEST, unregistred user!
//公共函数
Function sqlexe(const bz,s:String;var pubq:TADOQuery):boolean;
Begin
with pubq do
Begin
if Active then Close;
SQL.Clear;
SQL.Add(s);
try
if bz='0' then Open
else ExecSQL;
result:=true;
except
result:=false;
end;
end;
end;


服务端执行下面的语句时,Result 的值经常为 RTN_ERROR,这是我不希望看到的结果!问题出在哪?

sql:='Select * From student';
If Not SqlExe('0',sql,FQuery) Then
begin
Result := RTN_ERROR;
data_str :='查找在线表错!';
end;
 
//公共函数
Function sqlexe(const bz,s:String;var pubq:TADOQuery):boolean;
Begin
with pubq do
Begin
if Active then Close;
SQL.Clear;
SQL.Add(s);
try
if bz='0' then Open
else ExecSQL;
result:=true;
except
result:=false;
end;
end;
end;


服务端执行下面的语句时,Result 的值经常为 RTN_ERROR,这是我不希望看到的结果!问题出在哪?

sql:='Select * From student';
If Not SqlExe('0',sql,FQuery) Then
begin
Result := RTN_ERROR;
data_str :='查找在线表错!';
end;
 
代码没有问题,问题应该是在别的地方
 
不要采用pubq:TADOQuery这种变参
 
你的写法也许有问题。看看我写的。
function Tnewadodb.sqlexec(Qry:tadoquery;UsrErrMsg:string;Exectype:smallint):boolean;
begin
result:=false;
try
if (Exectype=0) and (qry.Active=true) then qry.Active:=false;
if Exectype=0 then qry.Open;
if Exectype=1 then qry.ExecSQL;
if Exectype=2 then qry.Requery();
result:=true;
except
on e:exception do
begin
qry.Close;
application.MessageBox(pchar(UsrErrMsg+#13+#13+e.Message),'错误信息',16);
end;
end;
end;
 
当BZ为0时,没有返回值
 
后退
顶部