function TfrmCustReg.CustRegToDB:Boolean;
var
CustOperDB :TCustOperDB;
SqlCMD:string;
begin
//顾客登记的信息写数据库
CustOperDB := TCustOperDB.Create(glostrConnDB);
with frmCustReg do
SqlCMD := 'begin transaction '
+ 'insert into Con_001(CustNO,CustName,IdTypeNo,Certificate,CerDept,'
+ 'CerUnit,Country,Sres,Curmoneys,MacNO,MacIP) values('''
+ edtCustNO.Text + ''',''' + edtCustName.Text + ''','''
+ IntToStr(cbxIdTypeNo.ItemIndex) + ''',''' + edtCertificate.Text
+ ''',''' + edtCerDept.Text + ''',''' + edtCerUnit.Text + ''','''
+ cbxCountry.Text + ''',''' + meoDescr.Lines.Text +''',' + edtCurmoneys.Text
+ ',''' + edtMacNo.Text + ''',''' + edtMacIP.Text + ''');'; //同时填写上机消费记录
SqlCMD := SqlCMD + 'insert into Con_003(CustNO,MacNO,MacIP,FeeStartTime) values('''
+ edtCustNO.Text + ''',''' + edtMacNo.Text + ''',''' + edtMacIP.Text + ''','''
+ FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()) + ''');'; //同时登记押金记录
SqlCMD := SqlCMD + 'insert into Con_004(CustNO,Deposit) values('''
+ edtCustNO.Text + ''',' + edtCurmoneys.Text + '); commit '; Result := CustOperDB.InsertRec(SqlCMD) = SUCCESS;
end;
==========
会写成存储过程吗?又不觉得太简单..
于是我写了一个类..给一个sql语句.......--
你们怎么做?
var
CustOperDB :TCustOperDB;
SqlCMD:string;
begin
//顾客登记的信息写数据库
CustOperDB := TCustOperDB.Create(glostrConnDB);
with frmCustReg do
SqlCMD := 'begin transaction '
+ 'insert into Con_001(CustNO,CustName,IdTypeNo,Certificate,CerDept,'
+ 'CerUnit,Country,Sres,Curmoneys,MacNO,MacIP) values('''
+ edtCustNO.Text + ''',''' + edtCustName.Text + ''','''
+ IntToStr(cbxIdTypeNo.ItemIndex) + ''',''' + edtCertificate.Text
+ ''',''' + edtCerDept.Text + ''',''' + edtCerUnit.Text + ''','''
+ cbxCountry.Text + ''',''' + meoDescr.Lines.Text +''',' + edtCurmoneys.Text
+ ',''' + edtMacNo.Text + ''',''' + edtMacIP.Text + ''');'; //同时填写上机消费记录
SqlCMD := SqlCMD + 'insert into Con_003(CustNO,MacNO,MacIP,FeeStartTime) values('''
+ edtCustNO.Text + ''',''' + edtMacNo.Text + ''',''' + edtMacIP.Text + ''','''
+ FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()) + ''');'; //同时登记押金记录
SqlCMD := SqlCMD + 'insert into Con_004(CustNO,Deposit) values('''
+ edtCustNO.Text + ''',' + edtCurmoneys.Text + '); commit '; Result := CustOperDB.InsertRec(SqlCMD) = SUCCESS;
end;
==========
会写成存储过程吗?又不觉得太简单..
于是我写了一个类..给一个sql语句.......--
你们怎么做?
解决方案 »
- delphi中关于动态生成treeview的问题
- pl/sql调试工具哪个好用
- 帮忙看一条SQL语句
- 在 ExpressQuantumGrid 如何根据每行的内容 改变行的颜色 ????????
- 关于时间得比较,急急急急急!!!!!
- 小猫提问:安装制作问题(三)WISE版
- 怎么调试service的程序?
- Delphi6+SqlServer退出时报"Connection Timed Out!"错误!
- 求救!生成table的语法!?
- 有人用过MakeObjectInstance函数么?它是这麽定义的,好像是API,但又查不到!
- 请教各位!如何在StringGrid中只让用户输入'A'..'D'中的一个字符??
- 谁知道下面的代码怎么错啦
SqlCMD := SqlCMD + 'insert into Con_004(CustNO,Deposit) values('''
+ edtCustNO.Text + ''',' + edtCurmoneys.Text + '); commit ';
修改后结果:
SqlCMD := SqlCMD + Format( ' Insert Into Con_004( CustNO, Deposit ) Values( %s, %s ); Commit', [ QuotedStr( edtCustNO.Text ), QuotedStr( edtCurmoneys.Text ) ] );其实最好的解决方案就是你说的存储过程!!!存储过程非常好写,而且可以避免一些问题!!!比如你的代码中有Begin Transaction,但与之对应的其他事务处理语句在哪里呢???
2、写一个存储过程,速度快效率高!
3、定义一个常量,用format来赋值。
我一定改进...:)
但是因为要很多字段插入表中..还得写一大堆的参数...又嫌它烦人......to Delphi_Li(Delphi Li):比如你的代码中有Begin Transaction,但与之对应的其他事务处理语句在哪里呢???
=========
我写的存储过程很少用到事务语句..请问一般还得注意哪些呢..?
如果要insert20个字段..得有20个参数.....写它一堆..真是难看又烦人..:(