请帮我看一下以下有关asta的程序有什么错误?(100分)

  • 主题发起人 主题发起人 wmff
  • 开始时间 开始时间
W

wmff

Unregistered / Unconfirmed
GUEST, unregistred user!
with AstaClientDataSet1 do
begin
Close;
sql.clear;
sql.add('select * from manage');
sql.add('where date1=:myparams');
prepare;
params[0].asdate:=sjdatetimepicker1.date;
Open;
end;
使用asta的dataset,为什么只是几句简单的程序却出现错误:type mismatch
明明类型都有匹配啊!
如果将where的条件换成其他字段(非时间字段)就不会出错,为什么?
还有啊,使用execsqlwithparams()
阔号中的字符太长,超过个字符怎么办?
本人在此万分感谢了!
 
你能确保"data1"的数据类型和"myparas"一样吗?
 
date1的类型是日期型的
myparams参数就是赋值为日期型数据嘛!
params[0].asdate:=sjdatetimepicker1.date;
 
params[0].asdate:=sjdatetimepicker1.datetime;
 
snake:
好象没有效果啊!
错误:
type mismatch in expression
 
//params[0].asdate:=sjdatetimepicker1.date
看我的用法:
paramByname('P_a').Value:=StrToDate(BD.Text);
没问题!!!
 
aerobull:
你的意思是说
用text框来得到时间吗?
我用的是timepicker来获取时间的
就算该成了用.value也是一样的错误?!
 
params[0] ====> params[1]
 
yhm71:好象也没有效果啊!
哎到底该怎么办啊?
 
首先你用的数据库是什么,连接引擎是什么,否则连接服务器的日期字段
转换肯定出问题
 
我用的是单机数据库PARDOX
 
哦!这个问题我也碰到了!我估计是在C 端已经产生了SQL语句,然后在提交到S端!
解决办法是
1。写一个函数,把日期转换成字符型的!类似'mm'dd'yyyy' 的格式!(我忘了在pardox中
Tdatetime的格式!你可以查帮助的)
2。然后再提交
Ex.
SQLTemp := 'select * from T where Date := '''+Ftrans(datepicker1.date)+''''
就可以啦!
 
[:)]如果是Paradox的库,必须将Asta Server的数据库模式设置为BDE,不能是ODBC
BDE采用'分割,ODBC采用#分割日期字段,你如果使用参数调用必须如此设计,如果
象楼上那位说的采用内置sql查询,那就不需要设定asta server的数据库模式,sql
语句是由数据引擎进行解释的,你可以查询服务器的metarequest的设计,可以了解
到这一点
 
shortdatetimeformat = 'yyyy/mm/dd'什么的
longdatetimeformat = 'yyyy/mm/dd'什么的
dateseparator = '/'
什么的,应该可以搞定
这个东西和系统的日期格式有关系,包括服务器系统和客户机
 
我认为可以这样写:params[0].asstring:=Formatdatetime('YYYY-MM-DD',sjdatetimepicker1.date);
 
后退
顶部