关于创建ACCESS表的问题(30分)

  • 主题发起人 主题发起人 lfpsoft
  • 开始时间 开始时间
L

lfpsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
使用ADO连接,在SQL Server中可以用以下SQL语句创建个员工资料表,
但是如果要改在ACCESS中创建,应该如何修改呢?
CREATE TABLE 员工资料 (员工编号 nvarchar (10) NOT NULL ,员工姓名 nvarchar (12),部门名称 nvarchar (20) NOT NULL,性别 nvarchar (2) NULL,婚否 nvarchar (4) NULL,编制 nvarchar (20) NULL,出生年月 smalldatetime NULL,工作时间 smalldatetime NULL,入司时间 smalldatetime NULL);
 
创建access数据库:
procedure Tform1.CreateDb(DbName: string);
var
Dbnew:OleVariant;
begin
if FileExists(DbName) then
begin
if MessageBox(Application.Handle,PChar('数据库 '
+ DbName + ' 已存在!'+ #13#10 +'是否覆盖?'),
'警告',MB_YESNO + MB_ICONWARNING) = idNo then exit;
if not DeleteFile(DbName) then
begin
MessageBox(Application.Handle,
PChar('不能删除数据库:' + DbName),
'错误',MB_OK + MB_ICONERROR);
exit;
end;
end;

dbnew:=CreateOleObject('ADOX.Catalog');
dbnew.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DbName);

adoq1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+dbname+';Persist Security Info=False';
adoq1.Close;
adoq1.SQL.Clear;
adoq1.SQL.add('Create Table 测试2 (ID INT PRIMARY KEY not null,'
+'姓名 char(8) not null,年龄 INT not null)');
adoq1.ExecSQL;
adoq1.Close;
adoq1.SQL.Clear;
adoq1.SQL.add('Create UNIQUE Index IDIndex ON 测试2 (ID)');
adoq1.ExecSQL;
adoq1.Close;
adoq1.SQL.Clear;
adoq1.SQL.add('Create Index xmIndex ON 测试2 (姓名)');
adoq1.ExecSQL;
adoq1.Close;
adoq1.SQL.Clear;
adoq1.SQL.add('Create Index nlIndex ON 测试2 (年龄)');
adoq1.ExecSQL;
MessageBox(Application.Handle,
PChar('数据库:' + DbName+'创建完成'),
'OK',MB_OK + MB_ICONWARNING);
end;
 
改成以下语句。
CREATE TABLE 员工资料 (员工编号 varchar (10) NOT NULL ,员工姓名 varchar (12),部门名称 varchar (20) NOT NULL,性别 varchar (2) NULL,婚否 varchar (4) NULL,编制 varchar (20) NULL,出生年月 datetime NULL,工作时间 datetime NULL,入司时间 datetime NULL)

Access没有nvarchar 和 smalldatetime。你用的是T-SQL语法。
 
接受答案了!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部