當前位置:首頁 » 操作系統 » delphi創建資料庫

delphi創建資料庫

發布時間: 2024-04-17 06:37:43

1. delphi ADOTable 能創建資料庫ACCESS里的一張新的數據表嗎

用Tbutton、Tadoquery 和 TADOConnection 控制項創建 access 資料庫表資料庫文件在 c:\mydb.mdb 在程序中添加AccessXP,ComObj 單元添加Tbutton、Tadoquery 和 TADOConnection 控制項 名稱分別為button1、adoquery1 和 ADOConnection1 button1 的click 事件程序如下:procere TForm1.Button1Click(Sender: TObject);
var AccessDB:OleVariant;
begin
try
AccessDB:=CreateOleObject('ADOX.Catalog');
AccessDB.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydb.mdb');
finally
AccessDB:=VarNull;
end;
adoconnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb;Persist Security Info=False';
with adoquery1 do
begin
close;
sql.Clear;
sql.add('Create Table Tab1 (id counter,name string,pass string)');
execsql;
end;
end;

2. 用delphi動態創建資料庫

用adoquery這個控制項
先連接好資料庫
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('create table 表名( 學號 char(20),姓名 char(20),班級 char(20))');
adoquery1.execsql;
可以了.

3. 關於DELPHI動態資料庫

在Delphi中動態建立資料庫結構
--------------------------------------------------------------------------------

一、問題的提出
在程序運行過程中動態建立資料庫結構是我們編寫功能通用的資料庫管理系統常見
的問題。通用資料庫管理系統開發的基本思路是:系統允許用戶自行設定管理對象的數據
庫結構,然後通過演算法編程技巧,在用戶設定完成後動態創建管理對象的資料庫結構和
完成系統功能的一些其它數據,這樣可以滿足不同用戶對管理系統管理項目的不同要求,
進而達到通用的目的。因此,通用資料庫管理系統開發的關鍵是系統能否動態地創建數據
庫結構。我們熟悉的Foxbase+、Foxpro等語言,均提供了動態創建資料庫結構的命令或過
程。
但是,在許多資料和書籍中,沒有介紹用Delphi如何動態建立資料庫結構,給我們開發
一些功能通用的資料庫管理系統帶來了不便。那麼如何在Delphi中動態建立資料庫結構
呢?本文是作者在查閱大量資料,經過反復實踐的基礎上得出的在Delphi中動態創建數據
庫結構的方法。
二、設置Delphi資料庫配置程序
在Delphi中要進行資料庫管理必須先設置好資料庫配置程序BDE,所有對資料庫的操
作,最後都要通過BDE去完成。下面以最常見的Dbase資料庫為例來配置Delphi的資料庫引
擎BDE。
1. 進入Delphi的集成開發環境IDE(Integrated Development Environment),在Dat
abase菜單下選擇Explore,出現SQL Explorer窗體,在Object菜單下選擇BDE Administra
tor。
2. 出現BDE Administrator窗體後在Database頁上選擇Dbase,在Definition頁中將
Type項設為Standard;將Default Driver項設為Dbase;將Path項設為一工作目錄名(如:D
:\MYNAME)。以上過程即為資料庫的別名(Aliases)設置,這在以後Delphi的程序開發過程
中要經常用到。
3. 選擇Configration頁,在Drivers的Native項中選擇Dbase,在Definition頁中將T
ype項設為File;將Langdriver項設為DBASE CHS CP936;將Level項設為5。
4. 完成上述工作後,在Object菜單中選擇Save as Configration,按出現的對話框要
求將以上的設置保存好。至此,資料庫的基本配置工作就完成了,我們就可以進行下面的
工作了。
三、動態創建資料庫結構方法
在Delphi中動態創建資料庫結構有兩種方法。
方法一:使用Table組件的CreateTable方法。步驟如下:
1. 進入Delphi的IDE建立一個新項目文件和新窗體(Form1)單元文件(unit1.pas)。
2. 在Form1上加入Table1、Edit1、Edit2、Button1組件。將Button1組件的Captio
屬性設為『創建』。
3. 用滑鼠雙擊Button1進入Unit1.pas單元文件,在游標處加入下列代碼。
with table1 do
egi
active:=false
databasename:=『dbase'
tablename:=『my.dbf'
tabletype:=ttdbase
fielddefs.clear
fielddefs.add(edit1.text,ftstring,10,false)
fielddefs.add(edit2.text,ftinteger,0,false)
createtable
end
4. 按F9鍵編譯運行,在Edit1處輸入一欄位名稱:ZD1,在Edit2處輸入一欄位名稱:ZD
2,然後點擊"創建"按鈕,程序將在D:\MYNAME目錄中產生一個名為MY.DBF的資料庫文件,用
Database Desktop查看文件結構如下:
FieldName
Type
Size
Dec
ZD1 C 10
ZD2 N 11
方法二:使用Query組件,用結構化查詢語言SQL(Structured Query Language)語句創
建,步驟如下:
1. 同方法一之步驟1。
2. 在Form1窗體中加入Query1、Button1組件,將Query1的Database Name屬性設為『
Dbase』;將Button1組件的Caption屬性設為『創建』。
3. 在Query1的SQL屬性單擊,出現Sting List Editor窗口,在該窗體中輸入以下SQL
語句:
Create Table My(
ZD1 Char(10),
ZD2 Numeric(10,2))
4. 雙擊Button1進入Unit1.pas單元,在游標處加入下列代碼:
Query1.ExecSQL
5. 按F9鍵 編譯運行,在"創建"按鈕處單擊即可產生一個名為MY.DBF的資料庫文件,
存放在D:\MYNAME目錄中,用Database Desktop查看其結構如下:
FieldName Type Size Dec
ZD1 C 10
ZD2 N 10 2
以上所介紹的操作和程序均在Windows98操作系統下,Delphi 3.0 C/S版上調試運行
通過。

4. DELPHI基礎教程:Delphi開發資料庫應用程序概述(一)[3]

Visual Query Builder 以可視化的方式建立SQL語句對資料庫表和表中的記錄進行操作

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

SQL links使得Delphi資料庫應用程序利用SQL語言訪問駐留在遠程伺服器上的數據 這些伺服器包括ORACLE Sybase Microsoft SQL Server Informix InterBase 當安裝SQL Link驅動程序之後 SQL語句便可以直接操作伺服器上的數據

Delphi可以訪問的數據源(DataSource)

Delphi資料庫應用程序是通過BDE獲取它們所需的數據的 BDE與不同類型的數據源打交道 BDE可以使用的數據源有如表 所示

表 Delphi可訪問的數據源

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

數據源(DataSource) 特 性 描 述 文件擴展名

───────────────────────────畢含──────────

dBASE資料庫 資料庫表是通過dBASE資料庫管理系統或DBD建立的 每察攔個表是一個獨立的文件 DBF

─────────────────────────────────────

Paradox資料庫 資料庫表是通過Paradox資料庫管理系統 DB或DBD建立的 每個表是一個獨立的文件

─────────────────────────────────────

ASCII文件 表是通過Database Desktop建立的 每個 TXT表是一個獨立的文件

─────────────────────────────────────

本地InterBase伺服器 資料庫是通過InterBase資料庫管理系統 GDB建立的 多個表包含在一個資料庫文件中

────────────敗數胡─────────────────────────

SQL資料庫伺服器 資料庫是通過相應的資料庫伺服器提供的 依賴不同的ORACLE Sybase Informix 專用或通用工具建立的 也可以通過DBD來 資料庫管理Microsoft SQL Server 創建資料庫 並通過SQL Link訪問資料庫 系統InterBase

─────────────────────────────────────

ODBC數據源 主要是指那些具有ODBC介面的資料庫系統 依賴於相應如MS Access Btrieve等的資料庫

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Delphi資料庫的體系結構

Delphi使用可視化的部件創建資料庫應用 跟創建其它的非資料庫應用程序一樣 資料庫部件都具備一定的屬性 程序設計人員可以在設計過程中設置部件的多種屬性 也可以在程序運行過程中通過程序來設置部件的各種屬性

在Delphi部件板上有兩頁資料庫部件用於開發資料庫應用程序

數據訪問部件頁 該頁上的部件主要用於說明有關的資料庫的信息 如應用程序要訪問(連接)的資料庫 要訪問資料庫中的具體的資料庫表 以及要訪問表中哪些欄位等 在實際的開發應用中常用的部件有TDataSource TTable TQuery等

數據控制部件頁 該頁上的部件主要用於顯示瀏覽資料庫中的數據信息 為用戶提供了一個可視化的界面 常用的部件有 TDBGrid TDBEdit TDBCheck等 可以讓用戶對資料庫中的信息進行有效的瀏覽 編輯 插入 刪除等操作

TTable TQuery TStoredproc部件負責與實際的資料庫表聯系 並從中獲取數據信息 因而它們又常常被稱為數據集部件 它們在程序設計過程中是可見的 但在程序運行時是不可見的 它們通過 BDE 為應用程序提供與資料庫的連接 數據控制部件通過TDataSource部件與數據集部件相連 為用戶提供一個可視化的界面 並在其中顯示資料庫中的數據信息

數據訪問部件

數據訪問部件頁上提供了一組數據訪問部件用來訪問資料庫中的數據

當要創建一個資料庫應用時 首先在窗體中選擇一個數據訪問部件 然後為數據訪問部件設置有關的屬性 說明要訪問的資料庫 數據表以及表中的記錄等 數據訪問部件為數據控制部件與數據源建立一條通道 數據訪問部件在程序運行時是不可見的 下表列出了數據訪問頁上的數據訪問部件以及它們的主要用途

表 數據訪問部件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

部件名稱 主 要 用 途

────────────────────────────

作為數據集部件TTable TQuery StoredProc組TDataSource 件與數據瀏覽件TDBGrid TDBEdit之間傳送數據的通道

────────────────────────────

TTable 它是存取磁碟上資料庫表的媒介 它通過BDE存取資料庫表中的數據 TTable再與TDataSource進行 對話 使得數據瀏覽部件能夠有效地從TTable中訪問數據並能顯示和編輯其中的數據

────────────────────────────

TQuery 它利用SQL語言訪問磁碟上資料庫表中的數據 並與TDataSource 對話 實現數據瀏覽部件對資料庫的訪問

────────────────────────────

TStoredProc 在應用程序中 它主要用來訪問遠程伺服器中的存貯過程

────────────────────────────

TDatabase 當應用程序要登錄到一個遠程伺服器上的資料庫時 可以用該部件來建立應用程序與資料庫永久

性的連接

────────────────────────────

TBatchMove 用於復制資料庫表的結構或表中的記錄

────────────────────────────

TReport 用於創建資料庫的輸出報表

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

lishixin/Article/program/Delphi/201311/25180

5. 在Delphi中如何動態創建dbf資料庫

以下是一個示例。供參考。(它是由dBASEvierer自動生成的單元)

unit1;

{***********************************************************************}
{}
{含喊粗基ormoretablesinthe}
{folder"aDbase"specifiedasaparameter.Ifthetablesare}
{successfullycreatedandopened,Trueisreturned."AOwner"isa}
{.}
{}
{}
{copiedintocodeofthewriter'schoice.}
{}
{CodegeneratedbydBASEviewer,writtenbyDouglasP.Baird-}
{dprd@sprynet..}
{}
{***********************************************************************}

interface

usesclasses;

functionCreateTables(aDbase:string;AOwner:TComponent):Boolean;

implementation

usesdbtables,SysUtils,db,Dialogs;

functionCreateTables(aDbase:string;AOwner:TComponent):Boolean;
var
Table0:TTable;
begin
Table0:=TTable.Create(AOwner);

{Create1.DBF}
withTable0dobegin
try
DatabaseName:=aDbase;
TableName:='1.DBF';
TableType:=ttDBase;
TableLevel:=7;
withFieldDefsdobegin
Clear;
withAddFieldDefdobegin
Name:='自動';
DataType:=ftAutoInc;
end;
withAddFieldDefdobegin
Name:='日期';
DataType:=ftDateTime;
end;
withAddFieldDefdobegin
Name:='分類';
DataType:=ftString;
Size:=16;
end;
withAddFieldDefdobegin
Name:='知識主題';
DataType:=ftString;
Size:=60;
end;
withAddFieldDefdobegin
Name:='索引關鍵字';
DataType:=ftString;
Size:=20;
end;
withAddFieldDefdobegin
Name:='知識內容';
DataType:=ftMemo;
end;
withAddFieldDefdobegin
Name:='提交';
DataType:=ftBoolean;
end;
withAddFieldDefdobegin
Name:='blob';
DataType:=ftTypedBinary;
談凳野end;
withAddFieldDefdobegin
Name:='ext';
DataType:=ftString;
Size:=5;
end;
end;
{odwith}
IndexDefs.Clear;
withIndexDefs.AddIndexDefdobegin
Name:='分類';
Fields:='分類';
Options:=[];
end;
{odwith}
withIndexDefs.AddIndexDefdobegin
Name:='日期';
Fields:='日期';
Options:=[];
end;
{odwith}
except
onE:Exceptiondobegin
MessageDlg(E.Message,mtError,[mbOk],0);
Result:=False;
Exit;
end;
{odon}
end;{try}
Result:=True;
try
CreateTable;
except
onE:Exceptiondobegin
MessageDlg('Errorcreatingtable.'+E.Message,mtError,[mbOk],0);
Result:=False;
end;
{odon}
end;{try}
end;
{odwithTable0}
Table0.Free;
end;

end.

熱點內容
安卓由哪個公司提供 發布:2024-04-30 12:27:03 瀏覽:414
伺服器2個cpu的內存如何安裝 發布:2024-04-30 12:19:02 瀏覽:326
如何搭建outlook伺服器 發布:2024-04-30 10:46:50 瀏覽:635
美圖忘記密碼手機如何刷機 發布:2024-04-30 10:45:43 瀏覽:190
sql字元設置 發布:2024-04-30 10:39:03 瀏覽:305
androidram 發布:2024-04-30 10:36:06 瀏覽:280
購買的新車有哪些基本配置 發布:2024-04-30 10:27:32 瀏覽:324
遠程訪問攝像頭 發布:2024-04-30 10:10:57 瀏覽:72
貼吧網站源碼 發布:2024-04-30 10:10:42 瀏覽:251
飢荒為什麼伺服器模組不能用 發布:2024-04-30 10:10:41 瀏覽:551