在VC6.0中用ADO编写数据库程序出现中文问题,急急急!!!!!! 在Excute函数中执行带有中文的Insert语句,结果到数据库中的是"??".经过检查,在传输的数据包中,语句中的汉字就已经变成"??"了.那位大侠能解释这种现象,并提出解决方案.给分!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用AddNew可以让这样的情况消失! 我用ADO就没出现过,代码贴出来 int MsgDbTool::InsertOneRow(const char *cUid, const tagUserInfo strUserInfo, const char *cPasswd){ CString csSQL,csDateTime; _variant_t RecordsAffected; //获取时间 SYSTEMTIME tTime; GetLocalTime(&tTime); csDateTime.Format("%d%d%d%d%d%d",tTime.wYear,tTime.wMonth,tTime.wDay, tTime.wHour,tTime.wMinute,tTime.wSecond); //组织数据 csSQL.Format("%s%s%s%s%s%s%s%s%s%s%s%s%s%d%s%c%s%d%s%s%s%s%s%s%s", "INSERT INTO MSG_USERINFO(USERID,PASSWD,MARK,LOGINDATE,LOGUSERTYPE,", "LOGGRP,LOGUSERID,MSGGATEID,SMSCOUNT,BYTECOUNT,USERNAME,", "USEROTHERNAME,HEADIMAGEID,SEX,AGE,EMAIL,IDCARD,HOMEADDRESS) VALUES('", cUid, "','", cPasswd, "','0','", (LPCSTR)csDateTime, "',NULL,NULL,NULL,NULL,0,0,'", strUserInfo.UserName, "','", strUserInfo.UserOtherName, "',", strUserInfo.HeadImageId, ",'", strUserInfo.Sex, "',", strUserInfo.Age, ",'", strUserInfo.Email, "','", strUserInfo.IdCard, "','", strUserInfo.HomeAddress, "')" ); try { m_DbCon->Execute((LPCSTR)csSQL,&RecordsAffected,adCmdText); //m_DbCon->Execute((_bstr_t)(LPCSTR)csSQL,&RecordsAffected,adCmdText); } catch(_com_error e)///捕捉异常 { return -1; } return 0;}其中Name和HomeAdress含中文AddNew的用法不熟悉 用AddNew()好像存在类型转换的问题 addnew putcollectupdate 有没有例程,我用AddNew()时产生了例外 这个好像不是ado的问题我遇到过是不是你写入库那台机器不支持中文或其他原因建议使用装中文系统的机器试试 肯定不是装中文系统的问题,估计AddNew()可以解决但是,谁有AddNew的完整例程因为我在试的时候Open(...)方法的调用总是产生例外。有这么多回应非常高兴,谢谢各位大侠了先!问题解决了一定送分。 问题已经解决了在连接字符串中有一个AOTU Translate的字段该值为FALSE时,中文正常 to herohetao(金橙子) : 在连接字符串中有一个AOTU Translate的字段,连接字符串是指哪的字符串啊。给个例子,谢啦! HRESULT hr;m_csConnectStr.Format("Provider=SQLOLEDB; Data Source=%s; Initial Catalog=%s;\ User Id=%s;Password=%s;Auto Translate=False",cIP,cDbName,cDBO,cPasswd); try { hr =m_DbCon.CreateInstance(__uuidof(Connection));} 少了赋值语句:m_DbCon->ConnectionString = (LPCSTR)m_csConnectStr; MFC怎么在树形控件中,判断点击了那个节点,然后用MessageBox显示点击的节点名称 股票软件中的领先指标是怎样计算出来的 为何使用GetOpenFileName()时 定义OPENFILENAME ofn;时 报错undeclared identifier 请教:如何在放大位图时显示网格 关于VB中自适应分辩率的问题 如何正确安全的传递DATE类型的数据? 如何将相对url转换成绝对url 请教服务器编程 内存泄漏 vc++串口通信编程,谁有好用的控件,谢谢了 dll中到出非模态对话框! 一个关于windows应用程序开发的问题
代码贴出来
{
CString csSQL,csDateTime;
_variant_t RecordsAffected;
//获取时间
SYSTEMTIME tTime;
GetLocalTime(&tTime);
csDateTime.Format("%d%d%d%d%d%d",tTime.wYear,tTime.wMonth,tTime.wDay,
tTime.wHour,tTime.wMinute,tTime.wSecond);
//组织数据
csSQL.Format("%s%s%s%s%s%s%s%s%s%s%s%s%s%d%s%c%s%d%s%s%s%s%s%s%s",
"INSERT INTO MSG_USERINFO(USERID,PASSWD,MARK,LOGINDATE,LOGUSERTYPE,",
"LOGGRP,LOGUSERID,MSGGATEID,SMSCOUNT,BYTECOUNT,USERNAME,",
"USEROTHERNAME,HEADIMAGEID,SEX,AGE,EMAIL,IDCARD,HOMEADDRESS) VALUES('",
cUid,
"','",
cPasswd,
"','0','",
(LPCSTR)csDateTime,
"',NULL,NULL,NULL,NULL,0,0,'",
strUserInfo.UserName,
"','",
strUserInfo.UserOtherName,
"',",
strUserInfo.HeadImageId,
",'",
strUserInfo.Sex,
"',",
strUserInfo.Age,
",'",
strUserInfo.Email,
"','",
strUserInfo.IdCard,
"','",
strUserInfo.HomeAddress,
"')"
);
try
{
m_DbCon->Execute((LPCSTR)csSQL,&RecordsAffected,adCmdText);
//m_DbCon->Execute((_bstr_t)(LPCSTR)csSQL,&RecordsAffected,adCmdText);
}
catch(_com_error e)///捕捉异常
{
return -1;
}
return 0;
}其中Name和HomeAdress含中文
AddNew的用法不熟悉
putcollect
update
我遇到过
是不是你写入库那台机器不支持中文
或其他原因建议使用装中文系统的机器试试
因为我在试的时候Open(...)方法的调用总是产生例外。
有这么多回应非常高兴,谢谢各位大侠了先!
问题解决了一定送分。
在连接字符串中有一个AOTU Translate的字段
该值为FALSE时,中文正常
在连接字符串中有一个AOTU Translate的字段,连接字符串是指哪的字符串啊。给个例子,谢啦!
User Id=%s;Password=%s;Auto Translate=False",cIP,cDbName,cDBO,cPasswd);
try
{
hr =m_DbCon.CreateInstance(__uuidof(Connection));
}
m_DbCon->ConnectionString = (LPCSTR)m_csConnectStr;