向数据库里面插入NULL值有关问题
向数据库里面插入NULL值问题
现在我需要向数据里面循环插入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的列比较长的
------解决方案--------------------
值的地方直接写null就可以,试试看
------解决方案--------------------
试一下
str1:=#0
------解决方案--------------------
顶。也想知道Delphi中关于NULL的解决办法
------解决方案--------------------
每次插入之前判断一下str1,str2是不是空,是空的话就插入null
------解决方案--------------------
写个函数进行转换,如果字符串为空,则返回null
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)+ ')';
------解决方案--------------------
你的数据库中要插入的字段是字符串类型,你要插入'null'才可以的
直接插入null,那是给整型字段准备的
------解决方案--------------------
uses StrUtils; //Ifthen(...)
...
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;
现在我需要向数据里面循环插入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的列比较长的
------解决方案--------------------
值的地方直接写null就可以,试试看
------解决方案--------------------
试一下
str1:=#0
------解决方案--------------------
顶。也想知道Delphi中关于NULL的解决办法
------解决方案--------------------
每次插入之前判断一下str1,str2是不是空,是空的话就插入null
------解决方案--------------------
写个函数进行转换,如果字符串为空,则返回null
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)+ ')';
------解决方案--------------------
你的数据库中要插入的字段是字符串类型,你要插入'null'才可以的
直接插入null,那是给整型字段准备的
------解决方案--------------------
uses StrUtils; //Ifthen(...)
...
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;