varchar nvarchar char text 都行 但喜欢把它转成nvarchar和varchar这两种
怎样转换为varchar text 呢?SQL语言中的char和C++中的char是一个概念吗?
CString ss; CString sql; sql = "insert into table1(field1) values('"& ss &"')"; Ado.execute(sql);
SQL的char是一個定長的字符串,顯然和C++裏面的Char是不一樣的關於char,varchar...這些數據類型在幫助文檔裏面說得很詳細,我就不浪費時間了轉換可以使用Convert或者Cast函數,比如Convert(varchar(10), 'abc'), Cast('abc' as varchar(10)),這些也都能在幫助文檔裏面找到
但喜欢把它转成nvarchar和varchar这两种
CString sql;
sql = "insert into table1(field1) values('"& ss &"')";
Ado.execute(sql);
{
CString SystemTime; SystemTime = GetCurrentTimestr(); try
{
_variant_t ra;
m_pConnection->Execute( "IF NOT EXISTS(SELECT * FROM LOG.dbo.sysobjects WHERE name='日志')CREATE TABLE 日志( 日期 varchar(50),记录 varchar(50) )",&ra,adCmdText );
m_pConnection->Execute( "INSERT INTO 日志( 日期,信息 ) VALUES ( _bstr_t(SystemTime),_bstr_t(strLog) )",&ra,adCmdText );
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
代码就是这个样子,表能创建成功,就是插入那两个CString对象的时候弹出出错信息,
出错信息 error #3092
-------------------你把C++的變量放到sql語句裏面去了,當然會報錯
假设你的CString对象叫m_string,
在写入数据库时,用_bstr_t(m_string)转型后即可向数据库中写入
-----------------------------------这是另外一个帖子里面,有人说的
strSql += _bstr_t(SystemTime);
strSql += "',";
strSql += _bstr_t(strLog);
strSql += "')";m_pConnection->Execute(strSql, &ra, adCmdText);這樣行不行?