vb如何批量处理sql语句

ckingirl 2003-12-21 04:14:24
我想给三个表分别insert新记录,必须保证都成功,所以有一个表insert不成功,另两个表的insert就不执行。怎么搞呢???
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KJ_Wang 2003-12-21
  • 打赏
  • 举报
回复
private sub InsertInto()
dim sqlStr as string
sqlstr="Insert into Table1(Field1,Field2,....Fieldn) values('"& value1 &"','"& value2 &"',....,'"& valuen &"')"
sqlstr=sqlstr & "Insert into Table2(Field1,Field2,....Fieldn) values('"& value1 &"','"& value2 &"',....,'"& valuen &"')"
sqlstr=sqlstr & "Insert into Table3(Field1,Field2,....Fieldn) values('"& value1 &"','"& value2 &"',....,'"& valuen &"')"

cn.begintrans
on error goto InsertErr
cn.execute(sqlstr)
cn.commitTrans
msgbox "插入成功!"
exit sub
InsertErr:
cn.rollbacktrans
msgbox "插入失败!"
end sub
yassee 2003-12-21
  • 打赏
  • 举报
回复
学习来了。
amongwang 2003-12-21
  • 打赏
  • 举报
回复
建议使用事务处理!
ckingirl 2003-12-21
  • 打赏
  • 举报
回复
谢谢4位了
zhizhi625 2003-12-21
  • 打赏
  • 举报
回复
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Private Sub Form_Load()
conn.Open "Dsn=data" '我用的是系统dsn 打开连接
On Error Resume Next
conn.BeginTrans
cmd.ActiveConnection = conn
cmd.CommandText = "insert 表1 (name) values ('张三')"
cmd.Execute
cmd.CommandText ="insert 表2 (name) values ('张三')"
cmd.Execute
cmd.CommandText ="insert 表3 (name) values ('张三')"
cmd.Execute
If conn.Errors.Count = 0 Then
conn.CommitTrans
Else
conn.RollbackTrans
End If
End Sub
如果sql语句很多,可以将SQL语句写成数组;用for循环执行!
taosihai1only 2003-12-21
  • 打赏
  • 举报
回复
Dim cn As New ADODB.Connection
Dim flag As Integer

On Error GoTo errout:
cn.Open "...."
flag = cn.BeginTrans
cn.Execute "update table1 set ..."
cn.Execute "insert into table2(col1,col2,...) select ..."
cn.Execute "delete table3 where..."
cn.CommitTrans
flag = 0
'........其他处理
Exit Sub

errout:
If flag = 1 Then cn.RollbackTrans
Amphibian 2003-12-21
  • 打赏
  • 举报
回复
将插入操作编写为存储过程,在一个事务中处理。然后前端调用存储过程。
SoHo_Andy 2003-12-21
  • 打赏
  • 举报
回复
SQL语句是支持多语句运行的,语句之间用分号隔开

cn.excute "insert 表1 (name) values ('张三');insert 表2 (name) values ('张三');"

如果想语句运行一定成功,则可以使用事务处理,把执行语句放到
事务中间,成功则三个都成功,否则事务回滚,插入操作都不成功
1、可以设置,修改,增加学期信息,例如:2007年上学期,但是您必须设置一个默认学期为当前学期; 2、可以设置,修改,增加院系信息,如果是小学中学和高中不分院系,可以直接默认为本部,这样班级都是隶属于一个院系(本部)的。 3、可以设置,修改,增加教师信息,也可以批量增加教师信息,批量增加的教师姓名都是教师编号,可以教师登录后台后自己修改姓名等信息 4、可以设置,修改,增加班级信息,但是班级必须隶属于某个院系,有班级后才可以设置学生和课程。 5、可以设置,修改,增加学生信息,也可以批量增加学生信息,批量增加的学生姓名都是学生编号,可以学生登录后台后自己修改姓名等信息,学生增加的时候必须选择相关的班级。 6、可以设置,修改,增加课程信息,包括课程的开课教师,开课课时,开课班级等信息,此功能能配合课程表生成教师和班级课程表。 7、登录日志可以查看教师,学生,管理员的登录情况。 8、数据维护可以备份数据库,也可以直接操作SQL语句(不建议使用),这样数据可以更容易备份,系统更安全。 9、学生可以前台查询自己本学期的课程的成绩信息; 10、可以自动计算一个班级的所有学生成绩的整体排名和名次信息; 11、提供成绩的快速输入功能,批量给成绩,提供成绩的计算规则设置; 例如:(平时成绩*10%+作业成绩*10%+期中成绩*20%+期末成绩*60%=总分) 12、教师可以通过成绩排序来排布本课程的学生成绩的高低名次 13、提供成绩分析功能,可以查看某个课程成绩的分数分配比例 例如:开课人数30人 分析时间 2008-7-28 4:04:25 总分 2037 分 平均分 67.9 分 最高分 85 分 最低分 35 分 均分以上人数 29 人 均分以下人数 1 人 14、其它功能用户可以考用户手册; 15、教师可以查看本学期开设的课程,通过成绩管理功能进入学生成绩的录入功能; 16、教师可以通过成绩分析功能,分析课程的优秀,及格等比例的信息 17、教师还可以通过成绩汇总功能,对一个班级开设的全部课程进行总体的分析,计算全体课程的总分,名次等信息。 不在需要传统的计算器来完成 18、可以通过导出到EXCEL功能导出数据到您的机器,通过EXCEL来打印成绩数据,管理,数据保存更方便。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧