现在我需要向数据里面循环插入stringgrid中的数据,当stringgrid.cell[] 即有的单元格为空的时候我需要在数据库中表示为NULL即未知。请教高手们语句该怎么写?
我自己用两个edit试验了一下代码如下
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str1,str2:string;
begin
if Trim(edit1.Text)='' then
str1:=null
else
str1:=edit1.Text;
str2:=edit2.Text;
adocommand1.CommandText:='insert into table2([id],[path])values('''+str1+''','''+str2+''')';
adocommand1.Execute;
end;
程序运行不成功,我想知道该怎么写代码才能达到我下面测试数据里面的格式
测试数据库格式如下
id path
a a
NULL b
c NULL
d
e
测试数据库列比较少,实际上stringgrid的列比较长的
我自己用两个edit试验了一下代码如下
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str1,str2:string;
begin
if Trim(edit1.Text)='' then
str1:=null
else
str1:=edit1.Text;
str2:=edit2.Text;
adocommand1.CommandText:='insert into table2([id],[path])values('''+str1+''','''+str2+''')';
adocommand1.Execute;
end;
程序运行不成功,我想知道该怎么写代码才能达到我下面测试数据里面的格式
测试数据库格式如下
id path
a a
NULL b
c NULL
d
e
测试数据库列比较少,实际上stringgrid的列比较长的
function GetStrValue(value: string): string;
begin
if value='' then result := 'null'
else result := ''''+result+'''';
end;
adocommand1.CommandText:= 'insert into table2([id],[path])values( '+GetStrValue(str1)+ ', '+GetStrValue(str2)+ ')';
...
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str1,str2:string;
begin
srt1 := Trim(edit1.Text);
str2 := Trim(edit2.Text)= ; adocommand1.CommandText :=
' INSERT INTO table2 ([id],[path]) ' +
' VALUES( ' +
Ifthen(str1 = '', 'NULL', QuotedStr(str1) ) + ',' +
Ifthen(str2 = '', 'NULL', QuotedStr(str2) ) +
' ) ';
adocommand1.Execute;
end;