您的位置:首页 > 编程语言 > C语言/C++

Borland C++ Builder (BCB) 动态创建ACCESS的MDB数据表

2009-01-23 09:06 495 查看
Borland C++ Builder (BCB) 动态创建ACCESS的MDB数据表

  当BCB使用Misoftsoft SQL数据库时,我们可以使用如下的SQL语句来创建数据表。

if object_id('TABLENAME') is not null
begin
drop table TABLENAME
end "

CREATE TABLE TABLENAME (

ID int IDENTITY (1, 1) NOT NULL,

Name varChar(100) NOT NULL,

PRIMARY KEY (tmpDnDevID))

   但是当我们使用ACCESS数据库时上述语句却出现错误,这是ACCESS数据对SQL语句的兼容问题,我们不得不分别执行删除表和创建表的操作。

   第一步、 删除已存在的数据表。一般情况下如果数据表不存在,但又执行删除命令时,会出现异常出错的提示。这里使用了异常抛出,避免出现错误令程序中断,解决了删除表的问题。

AnsiString SqlStr = "drop table " + TABLENAME;

qryData->SQL->Clear();
qryData->SQL->Add(SqlStr);
try{
qryData->ExecSQL();
}
catch(...) {

}


  第二步、执行创建的SQL语句。

AnsiString SqlStr = " CREATE TABLE TABLENAME (
ID int IDENTITY (1, 1) NOT NULL,
Name varChar(100) NOT NULL,
PRIMARY KEY (ID))";
try{
qryData->ExecSQL();
}
catch(...) {

}


上面创建语句中,如果将Varchar(100) 改为Char(100) 在执行时会出现记录过大的问题,所以使用Char类型时,最好是改为Varchar,这方面要多加注意。

Written By Jason
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: