inno 打包的問題 ( 积分: 50 )

X

xiongw

Unregistered / Unconfirmed
GUEST, unregistred user!
請問,我用INNO setup5 將我的delphi7寫的數據庫程序打包,打包時增加了dbexmprss.dll和midas.dll完成後,正常安裝,運行也常,只是在有關時間調用的時候就出現"could not parse SQL timestamp string."的錯誤提示,我的時間通過從遠端SQL SERVER2000上取得,目的就是選擇出指定當月的數據.
with tadoquery.create(nil) do //取得本月初及次月初字串如5月1日和6月1日
try
connection:=datamodule2.adoconnection1;
close;
SQl.clear;
sQl.add('select datepart(yyyy,getdate())as yyyy,datepart(mm,getdate())as mm');
open;
filterstr:=fieldbyname('yyyy').asstring+'-'+fieldbyname('mm').asstring+'-01';
close;
sql.Clear;
sQL.Add('select datepart(yyyy,convert(smalldatetime,dateadd(mm,1,getdate()),1))as yyyy,');
sql.Add('datepart(mm,convert(smalldatetime,dateadd(mm,1,getdate()),1))as mm');
open;
filterstr1:=fieldbyname('yyyy').asstring+'-'+fieldbyname('mm').asstring+'-01';
finally
free
end;
self.enter;
statusbar1.Panels[0].Text:='時間:'+filterstr;

end;

.............
sqldataset1.Close;
//sqldataset1.CommandText:='select statim,endtim,jb,bz from t_qjb where(id=b.id)and(a.state=0)';
sqldataset1.CommandText:='select id,statim,endtim,jb,bz from t_qjb where id=:id1';
sqldataset1.Params.ParamByName('id1').Value:=employ_form.id;
sqldataset1.Open;
self.ClientDataSet1.Filter:='statim >='''+filterstr+'''and statim<'''+filterstr1+'''';
clientdataset1.Active:=true;
以上代碼在我本機上運行良好,安裝到其它機器就是有上面的問題.目的明確不過實現方法很笨.請問,我怎麽處理這個問題.
 
請問,我用INNO setup5 將我的delphi7寫的數據庫程序打包,打包時增加了dbexmprss.dll和midas.dll完成後,正常安裝,運行也常,只是在有關時間調用的時候就出現"could not parse SQL timestamp string."的錯誤提示,我的時間通過從遠端SQL SERVER2000上取得,目的就是選擇出指定當月的數據.
with tadoquery.create(nil) do //取得本月初及次月初字串如5月1日和6月1日
try
connection:=datamodule2.adoconnection1;
close;
SQl.clear;
sQl.add('select datepart(yyyy,getdate())as yyyy,datepart(mm,getdate())as mm');
open;
filterstr:=fieldbyname('yyyy').asstring+'-'+fieldbyname('mm').asstring+'-01';
close;
sql.Clear;
sQL.Add('select datepart(yyyy,convert(smalldatetime,dateadd(mm,1,getdate()),1))as yyyy,');
sql.Add('datepart(mm,convert(smalldatetime,dateadd(mm,1,getdate()),1))as mm');
open;
filterstr1:=fieldbyname('yyyy').asstring+'-'+fieldbyname('mm').asstring+'-01';
finally
free
end;
self.enter;
statusbar1.Panels[0].Text:='時間:'+filterstr;

end;

.............
sqldataset1.Close;
//sqldataset1.CommandText:='select statim,endtim,jb,bz from t_qjb where(id=b.id)and(a.state=0)';
sqldataset1.CommandText:='select id,statim,endtim,jb,bz from t_qjb where id=:id1';
sqldataset1.Params.ParamByName('id1').Value:=employ_form.id;
sqldataset1.Open;
self.ClientDataSet1.Filter:='statim >='''+filterstr+'''and statim<'''+filterstr1+'''';
clientdataset1.Active:=true;
以上代碼在我本機上運行良好,安裝到其它機器就是有上面的問題.目的明確不過實現方法很笨.請問,我怎麽處理這個問題.
 
用Installer,或Wise install吧。
 
據我所知,使用INNO打包的很多,難道大家都沒有遇到這樣的問題嗎,
 
你是不是在数据库中使用了 TIMESTAMP 类型的字段?

当有任何修改时,TIMESTAMP的值都会改变,这样,当你试图修改在此之前
已经改过而在程序端又没有刷新的数据时,
WHERE 子句找不到你的TIMESTAMP字段的值,就会报错
 
快過年了,我祝大家新年快樂.
另to moonshiny;
我的時間字段全部爲smalldatetime類型,上面實現的是取出指定月的數據,而且在我本機上運行良好,安裝在別的機器上就有這個提示,應該是我用INNO打包的時候少了什麽沒加進去,問題是出在下面的一部分代碼,filter那裏,我從未用過timestamp類型.
大家幫邦忙.
 
救命啊~~~~~~~~~~~~
 
我也用Inno setup,但没用过对数据库打包。
帮你顶。
 
INNO問題嗎?怎麼不像的~~
 
肯定不是INNO打包的问题
时间的格式问题吧
在Delphi中要时间的组合以及拆开请用EncodeDate/DeCodeDate这两个函数来操作
 
OK,解決!![:D]
 
顶部