想在程序中实现从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;
可程序运行总出现问题。
代码如下: 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;
^ 类似与这里的,你是不是想在 string 中加入一个 单引号 呢?如果是应该将它改成 '''';记住在后面还有一个单引号,就是你的“','这里,应该改成“''','”。sqlString:=sqlString+''+VerticalScale+','+HorizontalScale+','+HorizontalDelay+''+')';Delphi 中单引号是使用两个单引号用单引号括起来表示的。