现在客户端只要执行sql报一次错,数据库服务器进程就多一个

formyqueen_ 2012-01-17 04:34:45
有个datasnap问题请教 现在客户端只要执行sql报一次错,数据库服务器进程就多一个

例如 在客户端执行 kill 1 因为是kill系统进程 肯定报错 但报一次错就多一个sqlserver连接进程,如何解决?


服务器端
function TServerMethods1.GetData(sql:string): TDataSet;
begin
try
SQLConnection1.Open;
SQLDataSet1.Close;
SQLDataSet1.CommandText:=sql;
SQLDataSet1.Open;
Result := SQLDataSet1
except
on E: Exception do
begin
SQLConnection1.Close;
SQLDataSet1.Close;
Result := nil;
end
end;
end;

procedure TServerMethods1.execsql(sql:string);
var
SQLQuery: TSQLQuery;
begin
try
try
SQLQuery := TSQLQuery.Create(nil);
SQLQuery.SQLConnection := SQLConnection1;
SQLQuery.CommandText :=sql;
SQLConnection1.open;
SQLQuery.ExecSQL;
except
on E: Exception do
begin
SQLConnection1.Close;
end
end;
finally
SQLConnection1.Close;
SQLQuery.Free;
end;
end;
=====================================
客户端
procedure TForm2.Button2Click(Sender: TObject);//正常
begin

try
DBGridEh1.DataSource := DataSource1;
SQLConnection1.Connected := True;
try
ClientDataSet1.Close;
SqlServerMethod1.Params.ParamByName('sql').Asstring := memo1.Text;
ClientDataSet1.Open;
except
on E: Exception do
begin
SQLConnection1.Connected := False ;
showmessage('错误');
end
end
finally
SQLConnection1.Connected := False
end;
end;
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
formyqueen_ 2012-01-20
  • 打赏
  • 举报
回复
进程在客户端程序关闭后才能释放, 现在的情况是sql错一次,进程就多一个,不断累加,我都晕了
jinhx 2012-01-17
  • 打赏
  • 举报
回复
我也遇到过,不过我的连接时动态创建的,后来改成静态的就好了
erhan 2012-01-17
  • 打赏
  • 举报
回复
过段时间,进程也不能回收吗?

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧