+ -
当前位置:首页 → 问答吧 → delphi 7 clientdataset 使用的BUG型错误求改正

delphi 7 clientdataset 使用的BUG型错误求改正

时间:2011-11-24

来源:互联网

错误是基于一个托盘系统上的,当程序托盘时,我把鼠标移到托盘洗图标后,会有一个提示信息,代码如下:
procedure Tmainform.WndProc(var Msg:TMessage);
var
  pt:TPoint;
begin
  if Msg.Msg = WM_TRAYNOTIFY then
  begin
 // IconID:= Msg.WParam;
  GetCursorPos(pt);
  case Msg.LParam of
  WM_LBUTTONUP:
  begin
  //释放鼠标左键
  end;
  WM_RBUTTONUP:
  begin
  //释放鼠标右键
  end;
  WM_MOUSEMOVE:
  begin
  //鼠标在图标上移动
  //NotifyIcon.szTip := '移动';
StrpCopy(NotifyIcon.szTip, pchar(getstr));
Shell_NotifyIcon(NIM_MODIFY, @NotifyIcon);
  end;

红色部分就是当我把鼠标移动到图标后,执行 getstr 函数,返回值就是提示信息

getstr的代码如下:
function getstr: string;
var
  str11,str33,str44:string;
begin
  with datamodule1.search_sql_cds do
  begin
  close;
  commandtext:='SQL语句';
  open;
  str11:='0';
  str33:='0';
  str44:='0';
  datamodule1.search_sql_cds.First;
  while not datamodule1.search_sql_cds.Eof do
  begin
  str11:=floattostr(strtofloat(str11)+strtofloat(datamodule1.search_sql_cds.FieldByName('1').asstring));
  str33:=floattostr(strtofloat(str33)+strtofloat(datamodule1.search_sql_cds.FieldByName('2').asstring));
  str44:=floattostr(strtofloat(str44)+strtofloat(datamodule1.search_sql_cds.FieldByName('3').asstring));
  datamodule1.search_sql_cds.Next;
  end;
  end;

  Result:= str11+str33+str44;
  end;

大概意思就是用 clientdataset 通过SocketConnection1,SimpleObjectBroker1连接oracle数据库 。


但是我如果不用clientdataset连接服务器上的oracle数据库 ,改成adodataset连接本地的SQL数据库的话,就没有运行错误。

以下是我用clientdataset连接服务器上的oracle数据库,运行后,将鼠标移到图标上时出现的错误:

---------------------------
Debugger Exception Notification
---------------------------
Project helansale.exe raised exception class EDatabaseError with message 'Invalid data packet'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help  
---------------------------


我的代码为了保密有所改动,但是是没有语法错误的,而且调试的时候也是没有问题的,有高手知道这个问题的所在嘛?
怎么修改?加分求指教

作者: wojiaoyukai   发布时间: 2011-11-24

检查一下oracle数据库服务器的连接设置是否有效 及超时设置等配置

作者: csn168   发布时间: 2011-11-24