初学数据库编程,请问要把CString对象插入表中,一般使用什么样的数据类型?谢谢

解决方案 »

  1.   

    在SQL server2000中:如果你的CString的最大长度不超过8000,可以考虑用CHAR,VARCHAR,NCHAR,NVARCHAR;否则用TEXT,NTEXT.
      

  2.   

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

  3.   

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

  4.   

    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
      

  5.   

    _variant_t(SystemTime),_variant_t(strLog)
    试试 _bstr_t是将数据库内容转换成CString的