请问将cstring对象插入数据库表中时,一般转换为什么数据类型?

解决方案 »

  1.   

    varchar nvarchar char text 都行
      

  2.   

    varchar nvarchar char text 都行
    但喜欢把它转成nvarchar和varchar这两种
      

  3.   

    怎样转换为varchar text 呢?SQL语言中的char和C++中的char是一个概念吗?
      

  4.   

    CString ss;
    CString sql;
    sql = "insert into table1(field1) values('"& ss &"')";
    Ado.execute(sql);
      

  5.   

    SQL的char是一個定長的字符串,顯然和C++裏面的Char是不一樣的關於char,varchar...這些數據類型在幫助文檔裏面說得很詳細,我就不浪費時間了轉換可以使用Convert或者Cast函數,比如Convert(varchar(10), 'abc'), Cast('abc' as varchar(10)),這些也都能在幫助文檔裏面找到
      

  6.   

    void CMultiMediaSDlg::WriteLog( CString strLog )
    {
       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
      

  7.   

    這樣呢?m_pConnection->Execute("INSERT INTO 日志( 日期,信息 ) VALUES ('" + _bstr_t(SystemTime) + "'," + _bstr_t(strLog) + "')", &ra, adCmdText);
    -------------------你把C++的變量放到sql語句裏面去了,當然會報錯
      

  8.   

    还是不行,请问编程中要使用C++变量的值,一般采取什么样的办法加入到SQL语句中呢?麻烦您了
      

  9.   

    太久沒接觸C++了,好多東西都忘了...._bstr_t(SystemTime) 和 _bstr_t(strLog) 分別得到的是什麼?是字符串嗎?
      

  10.   

    SQL中的字符和C++中的字符是不一样的,如果你的CString对象小于8K,可将表中的对应变量定义为varchar类型(变长)
    假设你的CString对象叫m_string,
    在写入数据库时,用_bstr_t(m_string)转型后即可向数据库中写入
    -----------------------------------这是另外一个帖子里面,有人说的
      

  11.   

    暈了.._bstr_t strSql = ("INSERT INTO 日志( 日期,信息 ) VALUES ('";
    strSql += _bstr_t(SystemTime);
    strSql += "',";
    strSql += _bstr_t(strLog);
    strSql += "')";m_pConnection->Execute(strSql, &ra, adCmdText);這樣行不行?