acess数据库 表的命名规则
我用VC动态创建数据库表,遇到一个问题,数据表的名称遇到-、+、=等字符时就会创建失败,而只是数字和字母时就会创建成功,代码如下,请数据库高手指点,我创建的表的名称中必须...
我用VC动态创建数据库表,遇到一个问题,数据表的名称遇到-、+、=等字符时就会创建失败,而只是数字和字母时就会创建成功,代码如下,请数据库高手指点,我创建的表的名称中必须含有‘-’这个字符,请问能实现吗?我在access中手动创建表名是可以出现‘-’的,在vc里怎么会失败呢?有没有解决办法
BOOL CTestDlg::CreatNoteInMdb(LPCSTR MdbPath, LPCSTR NoteName)
{
if(!IsMdbExist(MdbPath))
{
AfxMessageBox("指定的数据库文件不存在!");
return FALSE;
}
_ConnectionPtr m_pConnection;
::CoInitialize(NULL);
CString strcnn;
strcnn.Format("Provider=Microsoft.JET.OLEDB.4.0;Data source=%s",MdbPath);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open(_bstr_t(strcnn), "", "", adConnectUnspecified);
_variant_t RecordsAffected;
CString strSql;
BSTR bstrSQL;
strSql.Format("CREATE TABLE %s(日期时间 char(19),电压 float,电流 float,转速 int,转矩 float,频率 float,有功功率 float,无功功率 float,功率因数 float,运行状态 char(50))",NoteName);
bstrSQL = strSql.AllocSysString();
m_pConnection->Execute(bstrSQL, &RecordsAffected, adCmdText);
strSql.Format("alter table %s add constraint [%sxs_p] primary key (日期时间)",NoteName,NoteName);//在数据表中创建日期时间项设为主键,目的是避免相同的数据多次加载
bstrSQL = strSql.AllocSysString();
m_pConnection->Execute(bstrSQL, &RecordsAffected, adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
m_pConnection = NULL;
::CoUninitialize();
return FALSE;
}
m_pConnection->Close();
m_pConnection = NULL;
::CoUninitialize();
return TRUE;
} 展开
BOOL CTestDlg::CreatNoteInMdb(LPCSTR MdbPath, LPCSTR NoteName)
{
if(!IsMdbExist(MdbPath))
{
AfxMessageBox("指定的数据库文件不存在!");
return FALSE;
}
_ConnectionPtr m_pConnection;
::CoInitialize(NULL);
CString strcnn;
strcnn.Format("Provider=Microsoft.JET.OLEDB.4.0;Data source=%s",MdbPath);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open(_bstr_t(strcnn), "", "", adConnectUnspecified);
_variant_t RecordsAffected;
CString strSql;
BSTR bstrSQL;
strSql.Format("CREATE TABLE %s(日期时间 char(19),电压 float,电流 float,转速 int,转矩 float,频率 float,有功功率 float,无功功率 float,功率因数 float,运行状态 char(50))",NoteName);
bstrSQL = strSql.AllocSysString();
m_pConnection->Execute(bstrSQL, &RecordsAffected, adCmdText);
strSql.Format("alter table %s add constraint [%sxs_p] primary key (日期时间)",NoteName,NoteName);//在数据表中创建日期时间项设为主键,目的是避免相同的数据多次加载
bstrSQL = strSql.AllocSysString();
m_pConnection->Execute(bstrSQL, &RecordsAffected, adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
m_pConnection = NULL;
::CoUninitialize();
return FALSE;
}
m_pConnection->Close();
m_pConnection = NULL;
::CoUninitialize();
return TRUE;
} 展开
1个回答
展开全部
ACCESS开发的命名规则
数据库涉及字符规则
采用26个英文字母(区分大小写)和0 -9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。
数据库对象命名规则
数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。前缀:使用小写字母。
例如:
表 tb
视图 vi
存储过程 sp
函数 fn
实际名字
实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。
例如:
表 User_Info
视图 UserList
存储过程 UserDelete
因此,合法的对象名字类似如下。
表 tbUser_Info、tbMessage_Detail
视图 vi_MessageList
存储过程 sp_MessageAdd
数据库表命名规则
字段由前缀和实际名字组成。实际名字中首单词一个系统尽量采取同一单词。
前缀:使用小写字母tb,表示表。
例如:tbMember
tbMember_Info
tbForum_Board
tbForum_Thread1
字段命名规则
数字、字符、日期/时间、lob(大对象)、杂项,字段由表的简称、下划线,实际名字加后缀组成。
后缀:使用小写字母,代表该字段的属性。
例如: User_Idint
User_Namestr
User_RegDatedtm
视图命名规则
字段由前缀和实际名字组成,中间用下划线连接。
前缀:使用小写字母vi,表示视图。
例如:vi_User
vi_UserInfo
存储过程命名规则
字段由前缀和实际名字组成,中间用下划线连接。
前缀:使用小写字母sp,表示存储过程。
例如:sp_User
数据库设计文档规则
所有数据库设计要写成文档,文档以模块化形式表达。大致格式如下:
'-------------------------------------------
' 表名: tbUser_Info
' 建立人:UAM_Richard
' 日期: 2004-12-17
' 版本: 1.0
' 描述: 保存用户资料
' 具体内容:
' UserId int,自动增量 用户代码
' UserName char(12) 用户名字
' ......
'--------------------------------------------
sql语句规则
所有sql关键词全部大写,比如Select,Update,FROM,ORDER,BY等。
数据库涉及字符规则
采用26个英文字母(区分大小写)和0 -9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。
数据库对象命名规则
数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。前缀:使用小写字母。
例如:
表 tb
视图 vi
存储过程 sp
函数 fn
实际名字
实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。
例如:
表 User_Info
视图 UserList
存储过程 UserDelete
因此,合法的对象名字类似如下。
表 tbUser_Info、tbMessage_Detail
视图 vi_MessageList
存储过程 sp_MessageAdd
数据库表命名规则
字段由前缀和实际名字组成。实际名字中首单词一个系统尽量采取同一单词。
前缀:使用小写字母tb,表示表。
例如:tbMember
tbMember_Info
tbForum_Board
tbForum_Thread1
字段命名规则
数字、字符、日期/时间、lob(大对象)、杂项,字段由表的简称、下划线,实际名字加后缀组成。
后缀:使用小写字母,代表该字段的属性。
例如: User_Idint
User_Namestr
User_RegDatedtm
视图命名规则
字段由前缀和实际名字组成,中间用下划线连接。
前缀:使用小写字母vi,表示视图。
例如:vi_User
vi_UserInfo
存储过程命名规则
字段由前缀和实际名字组成,中间用下划线连接。
前缀:使用小写字母sp,表示存储过程。
例如:sp_User
数据库设计文档规则
所有数据库设计要写成文档,文档以模块化形式表达。大致格式如下:
'-------------------------------------------
' 表名: tbUser_Info
' 建立人:UAM_Richard
' 日期: 2004-12-17
' 版本: 1.0
' 描述: 保存用户资料
' 具体内容:
' UserId int,自动增量 用户代码
' UserName char(12) 用户名字
' ......
'--------------------------------------------
sql语句规则
所有sql关键词全部大写,比如Select,Update,FROM,ORDER,BY等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询