各位达人:
小弟遇到问题如下,还请高手们耐心看完。问题1:
    目的是将txt 文本中的有规则数据导入到数据库中,现在已经通过函数将各个数据分割开,心想只要用insert into 语句就可以写入到数据库了。在access中data设置为时间类型,自定义格式yyyymmdd,这个和下面的问题相结合。结果在 access 查询分析器中可以执行的如下语句
insert into ce(data) values('2008-10-11')在delphi 中adoqurey1.sql.add('insert into ce(data) values('20081011')')中怎么都报错,尝试了几种修改括号内的内容和单引号都不行。希望高手能指点,或者指条更好的路。谢谢了!问题2:
    上面是一个测试,目的是将时间插入到access,下面是实际需要的。    这个txt文档是这样子的:
---------------------------------------------------------------------------------------------------
成交日期 交易所 品种 交割期   买卖      成交价   手数 开平    成交额       手续费   投保  平仓盈亏
20091022 上海   铜     1001   买       50690.00     1 平今    253450.00      0.00   投    1050.00
20091022 上海   铜     1001   买       50760.00     1 平今    253800.00      0.00   投    1050.00
20091022 上海   铜     1001     卖     50900.00     1 开      254500.00     76.35   投       0.00
20091022 上海   铜     1001     卖     50970.00     1 开      254850.00     76.46   投       0.00
20091022 上海   橡胶   1001   买       18920.00     5   平    473000.00     50.00   投   -2050.00
20091022 上海   橡胶   1001   买       18880.00     5 平今    472000.00      0.00   投    1375.00
20091022 上海   橡胶   1001   买       18915.00     2 平今    189150.00      0.00   投    -100.00
20091022 上海   橡胶   1001   买       18915.00     5 平今    472875.00      0.00   投     500.00
20091022 上海   橡胶   1001   买       18915.00     2 平今    189150.00      0.00   投     450.00
20091022 上海   橡胶   1001   买       18930.00     5 平今    473250.00      0.00   投       0.00
20091022 上海   橡胶   1001   买       18980.00     3 平今    284700.00      0.00   投    2050.00
20091022 上海   橡胶   1001   买       19005.00     3 平今    285075.00      0.00   投    1575.00
20091022 上海   橡胶   1001     卖     18830.00     1 开       94150.00     10.00   投       0.00
20091022 上海   橡胶   1001     卖     18850.00     1 开       94250.00     10.00   投       0.00
20091022 上海   橡胶   1001     卖     18905.00     2 开      189050.00     20.00   投       0.00
20091022 上海   橡胶   1001     卖     18930.00     5 开      473250.00     50.00   投       0.00
--------------------------------------------------------------------------------------------------成交日期需要导入到数据库是时间类型的,上面我的测试都没成功,就更不说这个应用能成功了,类似20091022这样子的日期型数据是要在 teechart 控件中以 X 轴显示的,现在第一步就遇到那么大的困难。希望高手能解答,达到目的就行,将成交日期以时间类型导入到数据库。。

解决方案 »

  1.   

    adoqurey1.sql.add('insert into ce(data) values(convert(datetime,'20081011',112))')
      

  2.   

    这种数字日期形式导入之前,你要进处理,处理成日期格式,然后写入access
      

  3.   

    写错了..
    adoqurey1.sql.add('insert into ce(data) values(convert(datetime,''20081011'',112))')
      

  4.   

    1、先将txt中的内容导入到listbox中;
    2、从listbox的第二行起循环到最后一行:
    for i:=1 to listbox.item.count-1 do
    begin
    ....
    end;
    3、取每行的前8个字符再转成你要的日期格式如:yyyy-mm-dd
    代码如下:
    temp:=copy(listbox1.item.string[i],1,8);
    temp:=copy(temp,1,4)+'-'+copy(temp,5,2)+'-'+copy(temp,7,2);
    4、然后存到数据库中的时候再转成日期型就好了:strtodatetime(temp);
      

  5.   

    不好意思.没睡醒..原来是access..
    你试试..
    adoqurey1.sql.add('insert into ce(data) values(CDate('20091011'))')
      

  6.   

    晕了,那你试试这个吧
    temp:='20081029';
    adoquery1.append;
    adoquery1.fieldbyname('data').datetime:=strtodatetime(temp);
    adoquery1.post;
      

  7.   

    非常感谢 suuuu 这位朋友你说的这个正好是我之后要插入到数据库的格式转换,现在的问题是没办法插入能查询,但是插入的时候报错    str := 'insert into ce (data) values(#2008-10-11#)';
        with ADOQuery1 do
        begin
            Close;
            sql.Clear;
            sql.add(str);
            Open;
            ExecSQL;
        end;
    我用showmessage跟踪,到open 这里之后就不行了,执行的时候出现错误
      

  8.   

    OK了,感谢 suuun 大哥,帖子要怎么结?