首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

VC,ConnectionPtr,SQL Server数据库建表有关问题

2013-12-11 
VC,_ConnectionPtr,SQL Server数据库建表问题BOOL CConnectDataBase::CreateTable(CString _tableName){if

VC,_ConnectionPtr,SQL Server数据库建表问题

BOOL CConnectDataBase::CreateTable(CString _tableName)
{
if(IsHaveTable(_tableName))
{
AfxMessageBox("数据库表已经存在!");
return FALSE;
}
try
{
_variant_t _value;
CString strSQL = _T("CREATE TABLE ");
strSQL += _tableName;
strSQL += _T("(PJType NCHAR(20),PJLevel NCHAR(20),PJDscribe NTEXT,Pic IMAGE)");
//建表
//m_pConnect->Execute("CREATE TABLE _tableName(PJType NCHAR(20),PJLevel NCHAR(20),PJDscribe NTEXT,Pic IMAGE)", &_value, adCmdText);
m_pConnect->Execute((_bstr_t)strSQL, &_value, adCmdText);
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
}

CConnectDataBase* m_pConect;
m_pConnect->CreateTable("DL/T 773-2001");

该程序出现‘/’附近,'-'附近有语法错误,究其原因,动态建表,表名不能使用/, ,-等符号,为什么利用数据库管理工具建表然后重命名可以使用这些符号,请问各位,在VC中用_ConnectionPtr建表,怎样做才能使其能够使用/,空格,-等符号呢?
[解决办法]
用中括号包住
[解决办法]
m_pConnect->CreateTable("DL/T 773-2001");

你的这句,改成这样,试试:

m_pConnect->CreateTable("[DL/T 773-2001]");
[解决办法]

_variant_t _value;
        CString strSQL = _T("CREATE TABLE ");
        strSQL += _tableName;
        strSQL += _T("(PJType NCHAR(20),PJLevel NCHAR(20),PJDscribe NTEXT,Pic IMAGE)");

改成

_variant_t _value;
        CString strSQL = _T("CREATE TABLE [");
        strSQL += _tableName;
        strSQL += _T("](PJType NCHAR(20),PJLevel NCHAR(20),PJDscribe NTEXT,Pic IMAGE)");

试试

热点排行