代码如下:
void MyODBCAPI::InsertCustomer(CString CustomerID, CString CompanyName)
{// 插入客户信息
if (!Connect("Test", "sa", "sa"))
{
msg = "连接数据源失败\n";
return;
}
CString sql;/*(CompanyName, ContactName)*/
sql.Format("Insert into Customers VALUES('%s', '%s')", CustomerID, CompanyName);
if (!ExecSQL(sql))
{
msg = "插入客户信息失败\n";
return;
}
msg = "插入客户信息成功.SQL=" + sql;
return;
}
BOOL MyODBCAPI::ExecSQL(CString sql)
{
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); // 分配语句句柄
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLExecDirect(hstmt, (SQLTCHAR*)(LPCTSTR)sql, sql.GetLength());
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
msg = "执行SQL语句成功";
return TRUE;
}
else
{
msg = "执行SQL语句失败";
return FALSE;
}
}
else
{
msg = "分配语句句柄失败";
return FALSE;
}
}数据库可以连接的上!查询操作也是可以的,但是一插入数据就报错。(SQLExecDirect返回-1),这是什么问题啊?愁死我了
void MyODBCAPI::InsertCustomer(CString CustomerID, CString CompanyName)
{// 插入客户信息
if (!Connect("Test", "sa", "sa"))
{
msg = "连接数据源失败\n";
return;
}
CString sql;/*(CompanyName, ContactName)*/
sql.Format("Insert into Customers VALUES('%s', '%s')", CustomerID, CompanyName);
if (!ExecSQL(sql))
{
msg = "插入客户信息失败\n";
return;
}
msg = "插入客户信息成功.SQL=" + sql;
return;
}
BOOL MyODBCAPI::ExecSQL(CString sql)
{
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); // 分配语句句柄
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLExecDirect(hstmt, (SQLTCHAR*)(LPCTSTR)sql, sql.GetLength());
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
msg = "执行SQL语句成功";
return TRUE;
}
else
{
msg = "执行SQL语句失败";
return FALSE;
}
}
else
{
msg = "分配语句句柄失败";
return FALSE;
}
}数据库可以连接的上!查询操作也是可以的,但是一插入数据就报错。(SQLExecDirect返回-1),这是什么问题啊?愁死我了
解决方案 »
- mfc类 封装成dll
- 请教,输入ip后如何把它变成十六进制??
- 达人快来救救我,一个对话框里放了CStatic,我封装过它,让它显示图片,然后在上面放了一个CButton,我也封装了它,让它也显示一个图标按钮. 遮挡的问题就出来了
- 深圳某软件公司招聘vc开发人员
- 控件将自己的内部信息返回给调用程序都有哪些方法 ??
- 请问向一个进程外窗口发送WM_SHOWWINDOW消息为何无效?
- 如何实现多个应用程序之间的消息通讯
- isapi 如何实现重定向?
- 请问 如何用cdc画 半个椭圆 ,还有半个 roundrect
- 关于settimer??
- 如何处理Debug Error: abnormal program termination对话框
- 组合框获取时间问题
sql.Format("Insert into Customers VALUES(数据库里的列名, 数据库里的列名)", 你存数据的变量名, 你存数据的变量名);反正我是这样写成功插入了的