Sql查询Foxprow数据库(100分)

  • 主题发起人 主题发起人 kitty_chen
  • 开始时间 开始时间
K

kitty_chen

Unregistered / Unconfirmed
GUEST, unregistred user!
select * from Foxprow数据库 where 数字型字段=99
运行后就死机
但是如果是Access数据库就没有问题

另外日期型字段如何查询
select * from Foxprow/Access数据库 where 日期型字段=?

 
检查您的ODBC配置
 
use SQL Query Foxpro:
数据是有结构的:
日期:like this:
select * from Foxprow数据库 where 日期型字段={2000-03-15}

整数应该无格式要求,I don't TRY THIS!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
会不会是软件有问题,或是有病毒
 
有函数将任何日期格式转换成yyyymmdd格式吧?一时忘了,查一下函数手册,查询时,都使用该格式,这样发生错误的机会较少。
 
用sql的外部接口函数吧!!!
 
TO 张乾: 你能告诉我sql的外部接口函数是什么函数吗,谢谢!
TO minibug: 你还记得将任何日期格式转换成yyyymmdd格式函数的开头字符吗?
谢谢!
 
用shortdateformat:='yyyymmdd'不知道是否可以。
 
to:kitty_chen : you should try in Sql explore first!
to 林旭斌: 用shortdateformat:='yyyy-mm-dd'不可以.
 
因为我所用的Foxpro数据库较大,大约有几十万条记录,所以用
select * from 数据库 where 数字字段=100时,如果满足条件
的数据比较多就会死机,满足条件的数据比较少就没事,不知有
什么解决的办法。
另外查询Access数据库日期型字段时用日期型字段=#1999/01/02#
就没有错,但查询Foxpro数据库日期型字段时就出错。
不知哪位高手有什么好办法?
 
to:kitty_chen :
>另外查询Access数据库日期型字段时用日期型字段=#1999/01/02#
>就没有错,但查询Foxpro数据库日期型字段时就出错。
I try in Sql explore succsess!
use: select * from Foxprow数据库 where 日期型字段={2000-03-15}
~~~~~~~~~~~~
>数据比较多就会死机...

解决的办法:一次选出少量数据,转出之后,Redo.



 
1、估计不是死机,而是比较慢,或者你的硬盘空间没有了,使得虚拟内存不够?

2、对于日期字段的通用做法是通过参数来传递:
var
onedate:TDateTime;
begin
onedate:=date;//当前日期
with qry do
begin

close;
sql.clear;
sql.add('select * from tablea where datefield=:aDate');
ParamByName('aDate').AsDateTime:=onedate;
open;
end;
 
To Wemeng
use: select * from Foxprow数据库 where 日期型字段={2000-03-15}
在程序中这样写会出错

To yck
你写的这段程序可以查出Foxpro数据库中的日期字段,谢谢!
但是我不明白为什么用参数中间过渡一下就可以?
另外我的硬盘空间很大,而且数据比较多时程序就失去响应


 
接受答案了.
 
后退
顶部