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
---------------------------
我的代码为了保密有所改动,但是是没有语法错误的,而且调试的时候也是没有问题的,有高手知道这个问题的所在嘛?
怎么修改?加分求指教
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28