SQL-Server2005出现“对于造型说明无效的字符”错误,求解!!!

uloborid 2011-05-29 01:04:58
VC++程序用ODBC技术连接SQL-Server2005出现“对于造型说明无效的字符”错误
数据库建表:
CREATE TABLE TRAINING_STUDENT
(
STUDENT_ID CHAR(10) NOT NULL,
STUDENT_NAME VARCHAR(10) NULL,
STUDENT_SEX VARCHAR(2) NULL,
STUDENT_AGE CHAR(3) NULL,
STUDENT_NATION VARCHAR(10) NULL,
STUDENT_NATIVE_PLACE VARCHAR(8) NULL,
STUDENT_IDENTITY_CARD_NO CHAR(20) NULL,
STUDENT_MARRIAGE_STATUS VARCHAR(8) NULL,
STUDENT_HEALTH_STATUS VARCHAR(10) NULL,
STUDENT_ATTEND_JOB_TIME DATE NULL,
STUDENT_HOME_ADDRESS VARCHAR(50) NULL,
STUDENT_TELEPHONE_NUMBER CHAR(12) NULL,
STUDENT_EMAIL VARCHAR(20) NULL,
)
下面是将新数据写进数据库的实现代码:

CString csSQL = _T("");
int i = 1;
int nFlag = 0;
while (!nFlag)
{
CTrainingStudentSet m_recordset(&m_database);
csSQL.Format(_T("select * from TRAINING_STUDENT where STUDENT_ID = %d"),i);
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,csSQL); // 打开数据集
if (m_recordset.GetRecordCount() == 0)
{
csSQL.Format(_T("insert into TRAINING_STUDENT values(%d,\'%s\',\'%s\',%d,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%d-%d-%d\',\'%s\',\'%s\',\'%s\')"),
i,
m_csStudentName,
m_csSex,
m_nStudentAge,
m_csNation,
m_csNativePlace,
m_csIdentityCardNo,
m_csMarriageStatus,
m_csHealthStatus,
m_ctAttendJobTime.GetYear(),m_ctAttendJobTime.GetMonth(),m_ctAttendJobTime.GetDay(),
m_csHomeAddress,
m_csTelephoneNumber,
m_csEmailAddress
);
m_database.ExecuteSQL(csSQL); // 执行SQL文
m_database.Close(); // 关闭数据库
nFlag = 1;
}

i++;
}

CDialog::OnOK();
}


数据库表格可以顺利建立,C++程序也没有显示语法错误,但是在测试执行文件准备输入新数据时,会弹出“对于造型说明无效的字符”对话框,在应用程序上看不到新输入的数据,但去数据库里可以发现刚输入的新数据。这是什么原因?
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
uloborid 2011-05-29
  • 打赏
  • 举报
回复
楼上能详细说说么?
-晴天 2011-05-29
  • 打赏
  • 举报
回复
应该是使用字符集的问题.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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