Delphi paradox 数据库 字段名 ServiceDate 类型 A 长度10 用下面的语句存成字符串. 格式 01/23/2007
Table1.FieldValues['ServiceDate']:=dateToStr(DateTimePicker1.Date);用SQL 语句查寻
Query1.SQL.Add('SELECT DocID, ServiceDate, Lastname, FirstName, Gender'); // 都是字段名
Query1.SQL.Add('FROM appointment.db');
Query1.SQL.Add('WHERE ServiceDate = dateToStr(DateTimePicker1.Date)'); // 我要查询这一天的所有记录错误提示:
Project abc.exe raised exception class EDBEngineError with message 'Invalid use of keyword.
Token: Date)
Line number:2'. Process stopped. Use Step or Run to continue.
如果最后一句改为
Query1.SQL.Add('WHERE ServiceDate = "01/23/2007"');
就可以. 请问为什么?怎样改?
Table1.FieldValues['ServiceDate']:=dateToStr(DateTimePicker1.Date);用SQL 语句查寻
Query1.SQL.Add('SELECT DocID, ServiceDate, Lastname, FirstName, Gender'); // 都是字段名
Query1.SQL.Add('FROM appointment.db');
Query1.SQL.Add('WHERE ServiceDate = dateToStr(DateTimePicker1.Date)'); // 我要查询这一天的所有记录错误提示:
Project abc.exe raised exception class EDBEngineError with message 'Invalid use of keyword.
Token: Date)
Line number:2'. Process stopped. Use Step or Run to continue.
如果最后一句改为
Query1.SQL.Add('WHERE ServiceDate = "01/23/2007"');
就可以. 请问为什么?怎样改?
解决方案 »
- 个别图形条形码长度短无法识别
- delphi连接sql2000数据库提示“[Microsoft][ODBC SQL Server Driver]没有执行可选择性”,如何处理
- 调用部署在windows2003下的webservice!@#$%^&*()_+|
- 急!!一个奇怪的问题,客户端在打开个别窗体时会死机
- DLL问题:输入一个参数,返回一个窗体!
- 请教高手 delphi 里能否调用 sql文件(a.sql) 将它执行(数据库是oracle)?
- 怎樣實現將數據導出到各種文型文件,如Excel,txt,dbf 等?請幫忙
- IdTCPClient IdTCPServer问题
- 关于文本的一些操作,高手指点下哈
- 哪位大神有 rsa 2048 版的
- delphi如何控制ADSL拨号,和拨号连接的功能
- 如何动态生成三条有规律的记录
请问如何在WHERE 中比较字符串?
赋值只能用单引号,比较时要用双引号.总是不能匹配.
如
tmpdatestring : string;
tmpdatestring := '01/23/2007';WHERE ServiceDate = tmpdatestring; // 总是有错. 其中ServiceDate 是数据库中一个字符型字串.
请帮忙!
将日期型字段当成是字符型做字符串的结合操作,加上单引号即可。
运行时不提示错误,但没有输出结果,一条记录都没有.
我的程序是:
var
tmpdatestring : string;tmpdatestring := '08/08/2007';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT DocID, ServiceDate, Lastname, FirstName, Gender, ');
Query1.SQL.Add('AccountingNum, Birthday, Address, Phone1, OHIP, VC, ');
Query1.SQL.Add('ServiceCode, Diagcode, Phone2, Provider, PaidBy, Fee');
Query1.SQL.Add('FROM appointment.db');
Query1.SQL.Add('WHERE ServiceDate = '+'''+tmpdatestring+''');
Query1.RequestLive := true;
Query1.Open; 好象是delphi 的 SQL 中变量不支持 paradox 数据库,如果是真的那就没有办法了.
tmpdatestring : string;
sql: string;
begin
tmpdatestring := '08/08/2007 ';
sql := 'SELECT DocID, ServiceDate, Lastname, FirstName, Gender FROM appointment.db';
sql := sql + 'WHERE ServiceDate = '+ ''''+tmpdatestring+'''';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(sql);
//Query1.RequestLive := true;
Query1.Open;
end;
试试这个,不好意思,上次解答的时候引号的时候出现问题。
“好象是delphi 的 SQL 中变量不支持 paradox 数据库”。这句话不对,你可以把整个Query1.SQL.Add(变量)中的变量看成是通知数据库执行的字符串命令,将它传到数据库中使数据库执行。