與Access資料庫結構有關的一些函式

2021-04-20 01:43:26 字數 2924 閱讀 5317

//與資料庫結構有關的一些函式

//1、動態改變欄位名稱

uses comobj;

//access

//tablename: 表名; oldcolname: 原欄位名; newcolname: 新欄位名;

procedure renamefield(const tablename, oldcolname, newcolname: string);

vardb, col: olevariant;

begin

db := createoleobject('adox.catalog');

db.activeconnection := adoconnection1.connectionobject;

col := createoleobject('adox.column');

col := db.tables[tablename].columns[oldcolname];

col.name := newcolname;

end;

//sqlserver

procedure renamefield(const tablename, oldcolname, newcolname: string);

begin

with adocommand1 do

begin

commandtext := 'exec sp_rename ''' + tablename + '.' + oldcolname +

''',''' + newcolname + ''',''column'';';

excute;

end;

end;

2、取得 access 庫中的表結構

type

ttabledef = record

name,

datecreated,

lastupdated,

description: string;

end;

ttabledefs = array of ttabledef;

procedure gettabledefs(const dbname: string; out tabledefs: ttabledefs);

vardbengine, db: olevariant;

i: longint;

begin

trydbengine := createoleobject('dao.dbengine.36');

db := dbengine.opendatabase(dbname);

setlength(tabledefs, longint(db.tabledefs.count));

for i := low(tabledefs) to high(tabledefs) do

begin

tabledefs[i].name := db.tabledefs[i].name;

tabledefs[i].datecreated := db.tabledefs[i].datecreated;

tabledefs[i].lastupdated := db.tabledefs[i].lastupdated;

trytabledefs[i].description := db.tabledefs[i].properties['description'].value;

except

tabledefs[i].description := '';

end;

end;

finally

db := unassigned;

dbengine := unassigned;

end;

end;

3、取得 access 表中的字段結構

type

tfielddef = record

name: string;

types,

size: longint;

description: string;

end;

tfielddefs = array of tfielddef;

procedure getfielddefs(const dbname, tablename: string; out fielddefs: tfielddefs);

vardbengine, db: olevariant;

i: longint;

begin

trydbengine := createoleobject('dao.dbengine.36');

db := dbengine.opendatabase(dbname);

setlength(fielddefs, longint(db.tabledefs[tablename].fields.count));

for i := low(fielddefs) to high(fielddefs) do

begin

fielddefs[i].name := db.tabledefs[tablename].fields[i].name;

fielddefs[i].types := db.tabledefs[tablename].fields[i].type;

fielddefs[i].size := db.tabledefs[tablename].fields[i].size;

tryfielddefs[i].description := db.tabledefs[tablename].fields[i].properties['description'].value;

except

fielddefs[i].description := '';

end;

end;

finally

db := unassigned;

dbengine := unassigned;

end;

end;

Access 資料庫與sql資料庫資料型別的比較

下表比較了 microsoft access 資料庫 microsoft access 資料庫 資料和物件 如表 查詢或窗體 組成的集合,與特定的主題或用途有關。microsoft jet 資料庫引擎用於管理資料。和 microsoft access 專案 microsoft access 專案 與...

ACCESS資料庫的注入

access資料庫的注入access資料庫的注入與mssql不同,要得到表名,字段,以及欄位的內容不能用mssql 暴 的方法直接得 到,access只能用猜解出表名和字段,然後再猜解出字段的長度,最後把字段的內容從第一位到第n位乙個個猜 解出來,採用的猜解方法類似玩乙個遊戲猜大小,比如乙個數字,猜...

連線ACCESS資料庫

1 匯入命名空間空間 system.data.oledb 2 建立指向資料庫的連線 建立連線要用到system.data.oledb命名空間中的類 oledbconnection。通過以下語句可以完成對本地資料庫的連線工作 string strconnect provider microsoft.j...