delphi 資料庫的動態建立
定義標準資料庫:
定義資料庫時,資料庫檔案資訊和資料庫結構資訊是必需的,如資料庫檔案的完整路徑,資料庫型別,資料庫的欄位名、型別、長度等。在delphi程式中可以定義三種標準型別的資料庫,DBASE資料庫、Paradox資料庫、ASCII資料庫。
使用:TTable 建立。
procedure CreateDB();
var table1:TTable;
begin
table1:=ttable.create(self);
with table1 do
begin
active:=false;
//DatabaseName:="c:/dbtemp";{預定義的別名資料庫工作區名}
tablename:='ljh1.db'; {將定義的資料庫名}
tabletype:=ttparadox; {資料庫型別,可為ttParadox,ttASCII,ttDbase}
{tabletype屬性為ttDefault表示資料庫型別與TableName指定值的副檔名對應}
with fielddefs do {資料庫結構資訊:此方法為ljh.db增加欄位}
{呼叫TTable.FidldDefs物件的Add方法向資料庫表中新增欄位。Add有4個引數:
欄位名:string。
欄位型別:TfieldType。
欄位大小:Word。一般只對String和Memo型別使用。
欄位是否NotNull: Boolean。
}
begin
clear;
add('yj',ftdate,0,false);
add('zp', ftstring,10,false); {增加具體的欄位名、型別}
add('zdm',ftinteger,0,false);
end;
With indexdefs do {此方法為ljh.db增加索引欄位}
{使用TTable.IndexDefs.Add()方法定義索引。Add有三個引數:
索引名:string;
索引欄位名:string;
索引型別:TIndexOptions;
}
Begin
Clear;
Add('yjindex','yj',[ixprimary]);
end;
createtable;
end;
end;
使用SQL語句建立:
procedure SQLCreateDb();
var table2:tquery;
begin
table2:=tquery.create(self);
with table2 do
begin
with sql do
begin
clear;
add('create table "ljh2.db"');
add('(yj date,'); {注意引號中的(}
add('zp char(10),');
add('zdm int)'); {注意引號中的)}
end;
execsql;
sql.clear;
sql.add('create index yj on "ljh.db" (yj)');{此sql語句為ljh.db增加索引欄位}
execsql;
end;
end;
會在當前目錄下生成以DB結尾的資料庫檔案。
以上是Delphi建立記憶體表步驟。
kbmMemTable使用簡述:
kbmMemTable建立步驟:
1. 建立一個kbmMemTable物件例項。
2. 呼叫kbmMemTable.FidldDefs物件的Add方法向資料庫表中新增欄位。Add的方法和Delphi相同。
3. 使用kbmMemTable.IndexDefs.Add()方法定義索引。Add的方法和Delphi相同。
4. 呼叫kbmMemTable的CreateTable。
重要的區別:因為kbmMemTable不需要BDE的支援。所以不要指明DatabaseName, TableName和TableType三個屬性。
程式碼如下:
with kbmMemTable1 do
begin
with kbmMemTable1.FieldDefs do
begin
Clear;
Add('Period', ftInteger, 0, false);
Add('VALUE', ftLargeInt, 0, false);
Add('BytesField', ftBytes, 20, false);
Add('Color', ftInteger, 0, false);
Add('Date', ftDate, 0, false);
Add('Memo', ftMemo, 0, false);
Add('AutoInc', ftAutoInc, 0, false);
end;
with kbmMemTable1.IndexDefs do
begin
Clear;
Add('Index1', 'VALUE', []);
end;
CreateTable;
end;
與Delphi建立記憶體表的對比
主從表功能:
kbmMemTable可以象其它TDataSet一樣,通過設定MasterSource和MasterField來簡單的完成主從表的操作。
SQL功能:
沒有發現kbmMemTable可以支援SQL語句的操作。它提供按欄位排序和對排序欄位的查詢功能。
kbmMemTable特點:
從其它TDataSet得到資料。
程式碼如下:
LoadFromDataSet(Table1, [mtcpoStructure, mtcpoProperties]);
這樣kbmMemTable就完全得到來自一個DataSet物件中的全部資料.
儲存和載入記憶體表中資料的功能
Delphi的TTable不提供SaveToFile功能。
kbmMemTable提供儲存到檔案的功能,儲存的檔案有兩種格式:
Options: TkbmMemTable.SaveFlags;
1. 二進位制格式。kbmMemTable.SaveToBinaryFile('c:/test.bin', Options).
kbmMemTable1.LoadFromBinaryFile('c:/test.bin')
2. .csv格式。kbmMemTable.SaveToFile('c:/test.csv', Options);
kbmMemTable1.LoadFromFile('c:/test.csv')
(一種Excel支援的文件格式)開啟後的內容如下:
@@FILE [email protected]@ 200
@@TABLEDEF [email protected]@
Period=Integer,0,"Period","",10
VALUE=LargeInt,0,"VALUE","",15
BytesField=Bytes,20,"BytesField","",10
Color=Integer,0,"Color","",10
Date=Date,0,"Date","",10
Memo=Memo,0,"Memo","",10
AutoInc=AutoInc,0,"AutoInc","",10
CALC=String,20,"CALC","",20
@@TABLEDEF [email protected]@
Period VALUE BytesField Color Date Memo AutoInc CALC
1 198 0 02/11/2001 This is a memo%n2001-11-2 10:19:52 1 0 1-二月
2 196 3 03/11/2001 This is a memo%n2001-11-2 10:19:52 2 1 2-三月
在文件的頭部份描述了表的欄位結構,在下面則是資料區域。
相關推薦
delphi 資料庫的動態建立
定義標準資料庫: 定義資料庫時,資料庫檔案資訊和資料庫結構資訊是必需的,如資料庫檔案的完整路徑,資料庫型別,資料庫的欄位名、型別、長度等。在delphi程式中可以定義三種標準型別的資料庫,DBASE資料庫、Paradox資料庫、ASCII資料庫。 使用:TTabl
基於NodeJS的MongoDB資料庫的動態建立
MongoDB的Node驅動我選擇“mongodb",注意不要混淆,前者是MongoDB資料庫;後者是操作該資料庫的第三方開源的NodeJS的Package。需要另外安裝: npm install "mongodb" 言歸正傳: 通常我們都是對某一個已經存在的資料庫進行增、
delphi ado 動態連線資料庫
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, ExtC
Delphi 動態建立控制元件,賦值,使用
uses 中定義: type TMyComponent = class(TComponent) public item1, item2, item3, item4, item5, item6: string; constructor Crea
JQ操作動態建立的元素
給動態建立的元素新增事件: $(document).on('click','obj',function(){ }) 刪除動態建立的元素: $('#logisticsInfo').delegate('.delBtn','click',function(){ if(confi
在javascript中用for迴圈動態建立的input獲取其內容的方法
問題: $("#v_m").click(function(){ var myselect=document.getElementById("v_m"); var index=myselect.selectedIndex ; var option = m
微服務分散式事務實戰(五)準備資料庫和建立第一個微服務
1)資料庫準備 在資料庫中mysql 分別建立2個數據庫forum1和forum2 forum1 下建立表block forum2下建立表Theme sql程式碼如下: 1 資料庫1Forum1: CREATE DATABASE IF NOT EXISTS forum1; USE forum
jq動態建立表格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> &l
C++ 用new 動態建立多維陣列
例: int **array=new int*[n]; &nbs
【轉】postgresql 檢視資料庫叢集建立時間
原文連結:https://blog.csdn.net/ctypyb2002/article/details/80930809 使用 pg_controldata 檢視 Database system identifier $ /usr/pgsql-10/bin/pg_controldata
實驗一 初識DBMS及資料庫的建立
實驗內容 1、建立資料庫 (1)建立一個學生課程資料庫,資料庫名Student_DB,包含主資料檔案,日誌檔案和輔助資料檔案Student_DB1,所有檔案路徑均存放在F:\My_database\ 下。其中,資料庫主資料檔案初始大小為5MB,最大大小為30MB,資料庫自動增長,增長方式是按
記一次logback傳輸日誌到logstash根據自定義設定動態建立ElasticSearch索引
轉:https://www.cnblogs.com/zhyg/p/6994314.html 先說背景,由於本人工作需要建立很多小應用程式,而且在微服務的大環境下,服務越來越多,然後就導致日誌四分五裂,到處都有,然後就有的elk,那麼問題來了 不能每個小應用都配置一個 logstash
右鍵選單,動態建立
case WM_RBUTTONDOWN://彈出右鍵選單 { CMenu menu1; &nb
MFC動態建立dialog,純程式碼建立dialog
參考:https://www.cnblogs.com/lidabo/p/3447007.html 大概思路:新增一個類,作為對話方塊模板 DlgTemplate.h #pragma once #include "afx.h" #define DLG_TEMPLATE_BUFFER_M
C# Panel滾動條滾動後,動態建立的控制元件下移的問題
C#做了一個從伺服器獲取資料的功能,動態建立控制元件顯示在Panel中,控制元件多的時候比Panel還高,滑動滾動條檢視中間資料,此時獲取到資料,,動態新增時,發現控制元件全部下移了,上面空出好大一部分空白。 除錯發現,即使控制元件的Location設定為new Point(0, 0);上面也空
元素的建立三種方式案例—動態建立列表
要點: 1.通過document.write()建立,如果是頁面載入完成再執行這種方式建立元素物件,會將原來頁面上的內容全部清除掉。如果在頁面載入的過程中,則不會出現這種狀況,但是也沒有什麼意義 2.通過.innerHTML會重新賦值,如果原來節點有內容會被層疊掉,為了建立有文字內容元素時候
delphi資料庫中ADOConnecting位置對查詢結果的影響
程式碼不附,只做記錄。 1、大部分資料庫的讀取部分會寫在窗體的onShow事件裡,此時資料庫的更新會在窗體的每次Show中進行資料的連線,也就是說,如果一個ADOConnection1對應兩個ADOQuery1和ADOQuery2,當通過ADOQuery1操作資料庫後,與ADOQuery2
案例動態建立表格
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input
案例動態建立星星
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body bgcolor="#000
HTML中關於動態建立的標籤無法繫結js事件的解決方法
小夥伴們在前端頁面的時候,是不是會經常遇到用JavaScript動態創建出來的Button按鈕或其他標籤無法使用點選事件的問題。如下程式碼,使用jquery在body中動態建立一個class為demo的Button按鈕,當點選這個按鈕時無法觸發點選事件。 <script> $(fun