2022年创建数据库MDB文件 .pdf
创建数据库MDB 文件var MYEngine:DBEngine; begin MYEngine:=CoDBEngine.Create; MYEngine.CreateDatabase( c:NewAccess1.mdb , ;LANGID=0 x0804;CP=936;COUNTRY=0; ,dbEncrypt); end; 用 Query 连接你的建好的数据库然后写SQL 语句不就行了CREATE TABLE Table1 ( Id int NOT NULL , String1 varchar (10) NOT NULL , Date1 datetime NULL , ); 有用 0 板砖 0 终总结(一):DirectShow 做的播放器(有部分代码)#2 楼 得分: 0 回复于: 2004-03-23 16:59:23 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - _9761仪猪猪) 级:搜索对我有用 0 丢个板砖 0 引用举报管理TOP 精华推荐: 申请 delphi 区大版ert2003级打字员) 级:#3 楼 得分: 0 回复于: 2004-03-23 16:59:48 O97.pas 或者是 DAO2000.Pas 对我有用 0 丢个板砖 0 引用举报管理TOP 精华推荐: 在这临近年关的时候,我不祝福大家新年快乐,请大家进来缅怀已经离去1 周年的 sysu死树前辈!ert2003级打字员) 级:#4 楼 得分: 20 回复于: 2004-03-23 17:04:39 /参考如下代码uses ComObj; /. var CreateAccess: OLEVariant; begin CreateAccess := CreateOleObject( ADOX.Catalog ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - CreateAccess.Create( Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:temptemp.mdb ); CreateAccess := Unassigned; end; /参考如下代码ADOQuery1.ConnectionString := Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:temptemp.mdADOQuery1.SQL.Text := CREATE TABLE Table1 (Field1 varchar(10), Field2 varchar(1ADOQuery1.ExecSQL; 你搜一下,很多的/建库方法uses ComObj; /. var CreateAccess: Variant; begin CreateAccess := CreateOleObject( ADOX.Catalog ); CreateAccess.Create( Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:temptemp.mdb ); CreateAccess := Unassigned; end; /建表方法ADOCommand1.ConnectionString := Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:temptemp.mdb ; ADOCommand1.CommandText := CREATE TABLE Table1 (Field1 varchar(10), Field2 varchar(10) ; ADOCommand1.ExecSQL; 以下 SQL 语句在 ACCESS XP 的查询中测试通过建表 : Create Table Tab1 ( ID Counter, Name string, Age integer, Date DateTime); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 技巧 : 自增字段用Counter 声明 . 字段名为关键字的字段用方括号括起来 ,数字作为字段名也可行. 建立索引 : 下面的语句在Tab1 的 Date 列上建立可重复索引Create Index iDate ON Tab1 (Date); 完成后 ACCESS 中字段 Date 索引属性显示为- 有(有重复 ). 下面的语句在Tab1 的 Name 列上建立不可重复索引Create Unique Index iName ON Tab1 (Name); 完成后 ACCESS 中字段 Name 索引属性显示为- 有(无重复 ). 下面的语句删除刚才建立的两个索引Drop Index iDate ON Tab1; Drop Index iName ON Tab1; ACCESS 与 SQLSERVER 中的 UPDATE 语句对比 : SQLSERVER 中更新多表的UPDATE 语句 : UPDATE Tab1 SET a.Name = b.Name FROM Tab1 a,Tab2 b WHERE a.ID = b.ID; 同样功能的SQL 语句在 ACCESS 中应该是UPDATE Tab1 a,Tab2 b SET a.Name = b.Name WHERE a.ID = b.ID; 即:ACCESS 中的 UPDATE 语句没有FROM 子句 ,所有引用的表都列在UPDATE 关键字后. 上例中如果Tab2 可以不是一个表,而是一个查询,例: UPDATE Tab1 a,(Select ID,Name From Tab2) b SET a.Name = b.Name WHERE a.ID = b.ID; 访问多个不同的ACCESS 数据库 -在 SQL 中使用 In 子句 : Select a.*,b.* From Tab1 a,Tab2 b In db2.mdb Where a.ID=b.ID; 上面的 SQL 语句查询出当前数据库中Tab1 和 db2.mdb(当前文件夹中)中 Tab2 以 ID 为关联的所有记录. 缺点 -外部数据库不能带密码. 补充 :看到 ugvanxk 在一贴中的答复,可以用Select * from c:aaa.mdb;pwd=1111.table1; ACCESS XP 测试通过名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 在 ACCESS 中访问其它ODBC 数据源下例在 ACCESS 中查询 SQLSERVER 中的数据SELECT * FROM Tab1 IN ODBC ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo; 外部数据源连接属性的完整参数是: ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=password; 其中的 DRIVER=driver可以在注册表中的HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI中找到异构数据库之间导数据参见碧血剑的http:/ ACCESS 支持子查询ACCESS 支持外连接 ,但不包括完整外部联接,如支持LEFT JOIN 或RIGHT JOIN 但不支持FULL OUTER JOIN 或FULL JOIN ACCESS 中的日期查询注意 :ACCESS 中的日期时间分隔符是#而不是引号Select * From Tab1 Where Date #2002-1-1#; 在 DELPHI 中我这样用SQL.Add(Format( Select * From Tab1 Where Date #%s#; , DateToStr(Date); ACCESS 中的字符串可以用双引号分隔,但 SQLSERVER 不认 ,所以为了迁移方便和兼容, 建议用单引号作为字符串分隔符. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -