急..麻烦大家帮帮我..谢谢! ( 积分: 50 )

H

hnw1982

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟对下面这句语句中的分号搞混了,请大家指点指点,谢谢!<br>strsql:='insert&nbsp;into&nbsp;TFYMX&nbsp;&nbsp;&nbsp;&nbsp;(FTdh,FTHC,FDzf,FDcf,FHyf,FHxnpfy,FSjfy,FBghfy,FHxdw,FCzdw,FCzfy,FCzf,FCzrq)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+'values(edt10.Text'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt1.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt7.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt8.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt2.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt6.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt3.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt5.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',edt4.Text'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',edt11.Text&nbsp;'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(StrToFloat(edt12.Text),0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(strtofloat(edt9.Text,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',now())';
 
Z

zealothasu

Unregistered / Unconfirmed
GUEST, unregistred user!
纯粹胡写<br>sql里面怎么那么多edt
 
L

lisongmagic

Unregistered / Unconfirmed
GUEST, unregistred user!
+'values(''edt10.Text'''<br>...<br>+',''edt4.Text'''<br>+',''edt11.Text'''<br>所有string类型的加上引号,啊哈哈
 
D

dalmatians

Unregistered / Unconfirmed
GUEST, unregistred user!
strsql:=&nbsp;format(<br>'insert&nbsp;into&nbsp;tfymx(ftdh)'+<br>'values(''%s'')'<br>,[edt1.text]);
 
D

dangde

Unregistered / Unconfirmed
GUEST, unregistred user!
有些问题,&nbsp;&nbsp;学一下SQL语句的格式&nbsp;&nbsp;
 
L

lucky.gong

Unregistered / Unconfirmed
GUEST, unregistred user!
我给LZ一个建议吧,像这种INSERT,最好用变量形式,写得起直观,不易搞错
 
J

jenhon

Unregistered / Unconfirmed
GUEST, unregistred user!
一团乱麻,建议减少你要INSERT的列数,慢慢体会:<br><br>strsql:='insert&nbsp;into&nbsp;TFYMX&nbsp;(FTdh,FTHC)values:)ftdh,:fthc)';<br>if&nbsp;edt1.text=''&nbsp;then&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xxx.Parameters.ParamByName('ftdh').Value:=0<br>else&nbsp;xxx.Parameters.ParamByName('ftdh').Value:=StrToFloat(edt1.Text);<br>if&nbsp;edt2.text=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xxx.Parameters.ParamByName('fthc').Value:=0<br>else&nbsp;xxx.Parameters.ParamByName('fthc').Value:=StrToFloat(edt2.Text);<br><br>xxx.execsql;<br><br>象我写的if&nbsp;edt?=''...这样也不是很好,最好先用VAL()判断一下。<br><br>另外好象ISNULL不能写在等式右边,没试过,高手解答。
 
Z

zhonguo12315

Unregistered / Unconfirmed
GUEST, unregistred user!
+',isnull(StrToFloat(edt12.Text),0)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+',isnull(strtofloat(edt9.Text,0)'
 
L

lvxiaohong702

Unregistered / Unconfirmed
GUEST, unregistred user!
如果要按那种格式写的话应该是<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+'values('''+edt10.Text+''','''+isnull(StrToFloat(edt1.Text),0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+''','''+isnull(StrToFloat(edt7.Text),0)+''','''........<br>用Parameters也不错<br>但我更习惯用FORMAT格式下要执行的SQL语句
 
J

jenhon

Unregistered / Unconfirmed
GUEST, unregistred user!
请教楼上&nbsp;delphi&nbsp;能解释&nbsp;isnull吗?....
 
L

lvxiaohong702

Unregistered / Unconfirmed
GUEST, unregistred user!
isNull(expresstion,value)就是如果expresstion为null时返回value,不为null时,返回<br>expresstion的值
 
L

lvxiaohong702

Unregistered / Unconfirmed
GUEST, unregistred user!
不好意思<br>在delphi里isnull好象不能识别<br>没看清楼上的问题
 
L

lvxiaohong702

Unregistered / Unconfirmed
GUEST, unregistred user!
但可以写个ISNULL函数啊<br>这样就不用每次去写判断语句了
 
M

minerva_sun

Unregistered / Unconfirmed
GUEST, unregistred user!
晕!晕!晕!晕!晕倒。。。<br>这样的语句,既不能在SQL里用,也不能在DELPHI里用,<br>values里面好象没有一个是正确的
 
L

LeeChange

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么说&quot;values里面好象没有一个是正确的&quot;呢?<br>如果楼主的表里每个字段都是足够长的字符类型,貌似上面的语句是对的呢!
 
Y

yuzi_82

Unregistered / Unconfirmed
GUEST, unregistred user!
给你段代码参考以下:<br>qryTelNewBusiness.Close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.sql.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.SQL.Text:='insert&nbsp;into&nbsp;tbl_TelBusinessHeader(AcceptID,AcceptDate,AcceptPerson,CustomerName,CustomerCard,CustomerAddress,CustomerTel,TelNumber,TelAddress,TelType,TelPrice,TelDeposit,TelFavourable)&nbsp;'+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;values:)AcceptID,:AcceptDate,:AcceptPerson,:CustomerName,:CustomerCard,:CustomerAddress,:CustomerTel,:TelNumber,:TelAddress,:TelType,:TelPrice,:TelDeposit,:TelFavourable)';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('AcceptID').Value:=ID;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('AcceptDate').Value:=strToDate(formatdatetime('yyyy-mm-dd',dt_AcceptDate.DateTime));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('AcceptPerson').Value:=trim(edtAcceptPerson.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerName').Value:=trim(edtCustomerName.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//éí·Y?¤o???<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtCustomerCard.Text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerCard').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerCard').Value:=trim(edtCustomerCard.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//?í?§áa?μμ??·<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtCustomerAddress.Text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerAddress').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerAddress').Value:=trim(edtCustomerAddress.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//?í?§áa?μμ??°<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtCustomerTel.Text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerTel').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('CustomerTel').Value:=trim(edtCustomerTel.Text);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//?í?§×°?úo???<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelNumber').Value:=trim(edtTelNumber.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//×°?úμ??·<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelAddress').Value:=trim(edtTelAddress.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;×°?úààDí<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelType').Value:=trim(cmbTelType.Text);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//3é??????<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtTelPrice.Text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelPrice').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelPrice').Value:=strtofloat(trim(edtTelPrice.Text));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//?o?e<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtTelDeposit.text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelDeposit').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelDeposit').Value:=StrToFloat(trim(edtTelDeposit.text));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ó??Y????<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;trim(edtTelFavourable.Text)=''&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelFavourable').Value:=null<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Parameters.ParamByName('TelFavourable').Value:=trim(edtTelFavourable.Text);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.Prepared:=true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qryTelNewBusiness.ExecSQL;
 
L

lvxiaohong702

Unregistered / Unconfirmed
GUEST, unregistred user!
拜托&nbsp;自己写个isnull(KeyValue,&nbsp;values:&nbsp;String):String;&nbsp;函数让它判断KeyValue的值,当为空时返回values的值.为啥不可以?把输入的值作为参数传入函数isNull(edit1.text,'0')这样如果edit1.text为空就返回'0',如果在增加纪录时字段类型是数值型可以用转换函数转成相应类型嘛
 
D

dyj9937

Unregistered / Unconfirmed
GUEST, unregistred user!
strsql:='insert&nbsp;into&nbsp;TFYMX&nbsp;&nbsp;&nbsp;&nbsp;(FTdh,FTHC,FDzf,FDcf,FHyf,FHxnpfy,FSjfy,FBghfy,FHxdw,FCzdw,FCzfy,FCzf,FCzrq)values('+Quotedstr(edt10.Text)+',isnull('+edt1.Text+',0),isnull('+edt7.Text+',0),isnull('+edt8.Text+',0),isnull('+edt2.Text+',0),isnull('+edt6.Text+',0),isnull('+edt3.Text+',0),isnull('+edt5.Text+',0),'+Quotedstr(edt4.Text)+','+Quotedstr(edt11.Text)+'&nbsp;,isnull('+edt12.Text+',0),isnull('+edt9.Text+',0),now())';<br><br>SQL里面CHAR类型的要用引号,用Quotedstr可以实现,而且ISNULL在SQL里面实现,但是你写SQL语句的时候,没必要把EDIT控件里面的值一个个转换成FLOAT类型,那样程序会出错,直接以STRING类型传给strsql就可以了,有必要的话可以用Trim函数去掉前后的空格
 
H

hnw1982

Unregistered / Unconfirmed
GUEST, unregistred user!
接受答案了.
 
顶部