想在程序中实现从OpenDialog1中读入文本文件,然后把文件中部分数据(float),筛选出来,存入数据库表(csbxTest)中,其相应字段为decimal.
可程序运行总出现问题。
代码如下:  valuelist:=TStringList.Create;
  if OpenDialog1.Execute then
    valuelist.LoadFromFile(OpenDialog1.FileName);
  sqlString:='';
  for I:=0 to valuelist.Count-1 do
  begin
    if valuelist.Names[I]='AxialForce' then
      AxialForce:=valuelist.ValueFromIndex[I]
    else if valuelist.Names[I]='ConfiningPressure' then
      ConfiningPressure:=valuelist.ValueFromIndex[I]
    .....
    else if valuelist.Names[I]='HorizontalScale' then
      HorizontalScale:=valuelist.ValueFromIndex[I];//因为感觉就是下面参数传递出了问题,所以全贴出来,已经仔细看过了,还是无法确定到底是哪错了。
    sqlString:='insert into csbxTest( AxialForce,ConfiningPressure,PorePressure';
    sqlString:=sqlString+',Temperatur,Length,Wave,VerticalScale,HorizontalScale';
    sqlString:=sqlString+',HorizontalDelay) values('+AxialForce+','+ConfiningPressure+',';
    sqlString:=sqlString+''+PorePressure+','+Temperature+','+Length+','+Wave+',';
    sqlString:=sqlString+''+VerticalScale+','+HorizontalScale+','+HorizontalDelay+''+')';
   
    DataModule2.ADOQuery1.Close;
    DataModule2.ADOQuery1.SQL.clear;
    DataModule2.ADOQuery1.SQL.add(sqlString);
    DataModule2.ADOQuery1.ExecSQL;

解决方案 »

  1.   

    sqlString:=sqlString+''+PorePressure+','
                             ^ 类似与这里的,你是不是想在 string 中加入一个 单引号 呢?如果是应该将它改成 '''';记住在后面还有一个单引号,就是你的“','这里,应该改成“''','”。sqlString:=sqlString+''+VerticalScale+','+HorizontalScale+','+HorizontalDelay+''+')';Delphi 中单引号是使用两个单引号用单引号括起来表示的。
      

  2.   

    应该就是CloneCenter(复制中心) 说的问题了。还有数据库是什么,sql server 中decimal的数据是不能用引号的。