以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  数据库问题!!请问高手问题出在哪里?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=60906)

--  作者:patrick
--  发布时间:2014/1/13 14:58:17
--  数据库问题!!请问高手问题出在哪里?
DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\test.mdb\');
//DBEXECUTE(\'create table guzhiif00(stockdate date ,品种 char,Kday char,vclose double)\');
//DBEXECUTE(\'insert into guzhiif00(stockdate,品种,Kday,vclose) values(now(),\'&numtostr(STKname(),0)&\',\'&numtostr(ymdt,2)& \',\'&numtostr(close,2)&\')\');

xx:=MONTH();
yy:=YEAR();
zz:=DAY();
tt:=TIME();
ymdt:=(((yy*100+xx)*100)+zz)*1000000+tt;
//ym:=numtostr(ymdt,0);
DBTABLE(\'Select * From guzhiif00 where Kday="ymdt"\');
ss:DBVALUE(\'vclose\');
出现解释错误,为什么会这样?????
如果这样DBTABLE(\'Select * From guzhiif00 where Kday="20131222091600"\');就可以正解显示。为什么???

--  作者:王锋
--  发布时间:2014/1/13 15:00:29
--  
你还没搞清楚,数值与字符串变量的区别
 
DBTABLE(\'Select * From guzhiif00 where Kday="\'&numtostr(ymdt,0)&\'"\');
[此贴子已经被作者于2014/1/13 15:00:37编辑过]

--  作者:patrick
--  发布时间:2014/1/13 15:21:47
--  
真是还没搞懂,可还是不行,提示”字符串的语法错误在查询表达式“Kday=”中。
--  作者:patrick
--  发布时间:2014/1/13 15:33:12
--  
ym:=numtostr(ymdt,0);
DBTABLE(\'Select * From guzhiif00 where Kday="ym"\');

DBTABLE(\'Select * From guzhiif00 where Kday="\'&numtostr(ymdt,0)&\'"\');
这两句我也试过了,真没搞懂啊!!!!问题出在哪里?王老师。



--  作者:王锋
--  发布时间:2014/1/13 17:59:28
--  

sss:=\'Select * From guzhiif00 where Kday="\'&numtostr(ymdt,0)&\'"\';
msgout(1,sss);

 

通过增加调试语句输出,没发现字符串查询语句有什么不正常


--  作者:patrick
--  发布时间:2014/1/14 14:13:14
--  
输出调试是正常,但还是报错。代码也没有发现错误啊。什么原因????
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140114140938.jpg
图片点击可在新窗口打开查看
DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\test.mdb\');
//DBEXECUTE(\'create table guzhiif00(stockdate date ,品种 char,Kday char,vclose double)\');
//DBEXECUTE(\'insert into guzhiif00(stockdate,品种,Kday,vclose) values(now(),\'&numtostr(STKname(),0)&\',\'&numtostr(ymdt,2)& \',\'&numtostr(jyds,2)&\')\');

xx:=MONTH();
yy:=YEAR();
zz:=DAY();
tt:=TIME();
ymdt:=(((yy*100+xx)*100)+zz)*1000000+tt;
ym:=numtostr(ymdt,0);
//DBTABLE(\'Select * From guzhiif00 where Kday="20140107092000"\');

DBTABLE(\'Select * From guzhiif00 where Kday="\'&numtostr(ymdt,0)&\'"\');
ss:DBVALUE(\'vclose\');
//sss:=\'Select * From guzhiif00 where Kday="\'&numtostr(ymdt,0)&\'"\';
//msgout(1,sss);

--  作者:王锋
--  发布时间:2014/1/14 15:59:33
--  
你直接把打印出来的字符串粘贴到数据库语句中,看看是不是还报错
--  作者:patrick
--  发布时间:2014/1/15 11:19:55
--  
也没有出错啊
--  作者:王锋
--  发布时间:2014/1/15 11:42:48
--  

你还是仔细调试一下吧,从数据库返回报错情况来看,应该是字符串的格式出了问题


--  作者:guotx2010
--  发布时间:2014/1/15 16:15:07
--  
日期型字段,在Access中需要用#的,比如:#2014-1-15#,你试试看