samsonhahaha 2017-05-06 16:49 采纳率: 0%
浏览 1275
已结题

ODBC INSERT语句怎么向多个表插入数据,有主键和外键引用的。怎么可以不用一条一条插

怎么向多个表中插入数据。。比如有五六个表,类似student,course,speciality,teacher这些表。
一条一条插入很麻烦吧,应该有更好的方法。但我只会用一条一条插入

能不能用循环一次性插很多条。我只能实现一次插一条记录
SQLCHAR sqlInsertDe1[100] = "insert department(dno,dept_name) values('d01', '软件学院')";
SQLCHAR sqlInsertDe2[100] = "insert department(dno,dept_name) values('d02', '计算机学院')";

SQLCHAR sqlInsertSpe1[100] = "insert speciality values('s01', 'd01', '软件工程')";
SQLCHAR sqlInsertSpe2[100] = "insert speciality values('s02', 'd02', '计算机科学')";

SQLCHAR sqlInsertTe1[100] = "insert teacher(t_no, t_name, dno) values('t01', 'Tang', 'd01') ";
SQLCHAR sqlInsertTe2[100] = "insert teacher(t_no,t_name,dno) values('t02', 'chen', 'd01')";

SQLCHAR sqlInsertStu1[100] = "insert student values('20130001', 'Tom', '男', '19940101', 'd01', 's01', 'rg1')";
SQLCHAR sqlInsertStu2[100] = "insert student values('20130002', 'Jane', '女', '19940201', 'd01', 's01', 'rg1')";

SQLCHAR sqlInsertCou1[80] = "insert course(cno,cname,spno) values('c1', '数据库', 's01')";
SQLCHAR sqlInsertCou2[80] = "insert course(cno,cname,spno) values('c2', '数据结构', 's02')";

SQLCHAR sqlInsertSt_Cou1[100] = "insert student_course values('20130001', 1, 85)";
SQLCHAR sqlInsertSt_Cou2[100] = "insert student_course values('20130002', 2, 78)";

result = SQLPrepare(hStmt, sqlInsertDe1, SQL_NTS);

if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
{
SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
printf("绑定失败!");
getchar();
exit(0);
}
// 执行SQL语句
result = SQLExecute(hStmt);
if (result == SQL_ERROR)
{
SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
printf("执行sql失败!");
getchar();
exit(0);
}
// 执行完sql语句之后,要读取数据
/*
while ((result = SQLFetch(hStmt)) != SQL_NO_DATA)
cout << szName << endl;
*/
// 释放句柄和断开连接
SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
SQLDisconnect(hDbc);
SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);

只会这么用。前面的那些环境,句柄都设置好了
更多

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥35 平滑拟合曲线该如何生成
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站