Time of Update: 2018-12-07
功用一:在架構裡面根據儲存在資料表中的方法名來動態調用執行方法。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject);
Time of Update: 2018-12-07
大型資料庫SQL,ORACLE都支援倆個處在異地的資料庫之間建立資料庫間的鏈路連結。當資料庫之間的鏈路建立好後,就可以像操作本機資料庫一樣地操作遠端資料庫。下面以SQL SERVER為例: --Author: CXG--Todo: 建立資料庫鏈路連結-----------------------------------------------------------------------------------------------------前提條件:首先要確保SQL
Time of Update: 2018-12-07
CREATE TABLE StockPile /* 庫存表 */ ( StockPile_ID INT IDENTITY(1,1) NOT NULL, /* 庫存編號 , 主鍵 */ Dept_ID INT NOT NULL, /* 商品所屬部門, 外鍵 ( 參照 DEPT 表 ) */ StoreHouse_ID INT
Time of Update: 2018-12-07
第一步建立預存程序create proc MyABC @a int ,@b int, @c int output as set @c=@a*@b在SQL中使用查詢分析器執行:declare @a int,@b int,@c int set @a=250set @b=40exec MyABC @a,@b,@c output --注意要添加output 關鍵字!select @c在DELPHI中使用資料集控制項執行: ADOQuery1.Close; ADOQuery1.SQL.Clear;
Time of Update: 2018-12-07
procedure TformRule.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);begin if (ARow = 0) or (ACol = 0) then exit; with sender as tstringgrid do //斑馬線效果 with canvas do begin if (arow
Time of Update: 2018-12-07
在delphi中,資料集是最常用資料存取方式。因此,必須建立JSON與TDataSet之間的互轉關係,實現資料之間通訊與轉換。值得注意的是,這隻是普通的TDataset與JSON之間轉換,由於CDS包含了Delta資料包,其資料格式遠比普通的TDataset更複雜。 資料集欄位資訊,是一個完整的字典資訊。因此,我們在JSON必須也建立字典資訊,才能建立資料集的欄位資訊。我們設定其JSON資訊如下: COLS:[欄位列表資訊],如:"Cols":[{"JsonType":"integer",
Time of Update: 2018-12-07
{*************************************************************}{ }{ 註冊函數 }{ 作者: 陳新光 }{
Time of Update: 2018-12-07
procedure TformBuy.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);var S: String; i, x, y, iTextWidth: Integer;begin// if Field.DataType <> ftBCD then Exit; if Field.FieldName <>
Time of Update: 2018-12-07
// Writen by 詠南工作室(陳新光) 2009-6-26 11:58:17// 資料庫連接池類// 使用ADO引擎,支援access, sqlServer, oracle三種資料庫// 連線物件.tag = 正數 表示此連線物件處於非使用狀態,否則反之// 所有時間單位均為秒unit UDataConnPool;{$HINTS OFF}{$WARNINGS OFF}interface uses SysUtils, Classes, DB, ADODB, Contnrs,
Time of Update: 2018-12-07
對象根據原資料動態產生,改變原資料,根據原資料動態產生的對象的屬性也隨之改變。 可以把原資料儲存在資料表中,或者檔案中。軟體系統啟動並執行時候讀取這些原資料,然後動態地產生一些對象。 在管理軟體裡面,我們習慣性地叫資料字典。為此會專門設計一個資料字典的資料表來儲存原資料。通過軟體佈建改變就是資料字典資料表裡面的原資料。 模板,大概是c++的叫法。無論怎樣,資料字典,原資料,模板儲存的都是對象的原資料,原資料——對象賴之以產生。 應用開發架構只有實現了原資料,並且對象是根據原資料動態產生,才能做到
Time of Update: 2018-12-07
{*******************************************************}{ }{ 匯出Tdbgrideh資料 }{ }{ 著作權 (C) 2007
Time of Update: 2018-12-07
單據的資料表設計 在表設計中,我嘗試過兩種方法:把銷售單、採購單等等單據用同一個實體表示,然後通過單據類型的欄位來標識,因為單據設計到商品的出入,所以單據類型必須有出入狀態標誌。這樣做的理由是:1、符合OO的設計思想,把訂單做為一個類2、代碼重用性好,效率高3、有利於業務擴充,通過對訂單類繼承,增加介面方法就可以增加新的業務在實現過程中,特別是資料庫設計中,這種思想產生了一些很小的表 當然也可以分單,即把每個單看成單獨的實體,這樣實現有這幾個好處:1、對於業務量大的企業,分單有利於減輕資料查詢的
Time of Update: 2018-12-07
針對INDY9版本// 使用完的線程歸還線程池procedure TIdThreadMgrPool.ReleaseThread(AThread: TIdThread);var LThreadPool: TList;begin ActiveThreads.Remove(AThread); LThreadPool := FThreadPool.LockList; try // PoolSize = 0 means that we will keep all active threads
Time of Update: 2018-12-07
unit MyLib;interfaceuses classes, Printers, DBGrids, Graphics, Sysutils, Windows, Forms, DB, Grids, Dialogs, ComObj, Controls,StdCtrls,ShellAPI;type//列印Tdbgrid TPrnOut = class(TObject) procedure PrintHeader(s:string); procedure
Time of Update: 2018-12-07
//取指定檔案夾及其子檔案夾內指定類型檔案清單procedure _GetFileList(AStrings: TStrings; ASourFile, FileName: string);// 調用樣本: _GetFileList(FileList, 'c:/', '*.pas')var sour_path, sour_file: string; TmpList: TStringList; FileRec, subFileRec: TSearchrec; i:
Time of Update: 2018-12-07
// Writen by 詠南工作室(陳新光) 2009-6-26 14:31:26{ for example:var q: TADOQuery;begin Result := nil; q := g_adoquerypool.GetAdoQuery; if q <> nil then begin q.Close; q.SQL.Clear; q.SQL.Text := sqlCommand; q.Open; Result := q;
Time of Update: 2018-12-07
上續上節的原資料概念。。。。。。 介面大體分為表單錄入介面/非表單錄入介面/樹形介面。。。。。。因此,可以抽象出與之對應的根據原資料產生表單錄入介面/非表單錄入介面/樹形介面的方法。在整個項目中統一使用這些方法來動態產生介面。高效,介面風格高度統一,介面可適應變化。 像基本資料的——客戶資料、商品資料,進銷存流水單據的——入庫單、出庫單,都要分別建立其原資料的模板。原資料的模板與之一對一。要改變客戶資料介面就改變客戶資料模板即可實現,其它以此類推。 進銷存的流水單據可以抽象成單據頭和單據明細,與
Time of Update: 2018-12-07
應用開發架構不一定要是外掛程式的架構 使用外掛程式的應用開發架構很好 外掛程式是包,而包不一定是外掛程式 一個包就是一個工程,一個外掛程式就是一個工程,一些外掛程式組成了工程組 外掛程式的粒度可以細也可以粗,細到可以一個表單介面封裝成一個外掛程式,具體外掛程式的粗細需要權衡外掛程式可以是可視的也可以是非可視的
Time of Update: 2018-12-07
{-------------------------------------------------------------------------------過程名: MakeFileList 遍曆檔案夾及子檔案夾作者: SWGWEB日期: 2007.11.25參數: Path,FileExt:string 1.需要遍曆的目錄 2.要遍曆的副檔名傳回值: TStringList Eg:ListBox1.Items:= MakeFileList(
Time of Update: 2018-12-07
所有對象都封裝成類了,具體運行時就是這些類的實例對象之間的互動問題了 對象如何劃分,劃分的粒度,首先要明白具體的業務模型 細節問題就是智者見智了 解除倆個對象的耦合的關鍵是引入一個第三者對象,讓第三者對象負責調停比如介面就是一個第三者對象。。。搞個專門的調度者對象,定義成抽象類也好,純介面也好,把那些動作定義成一組介面,其它各個對象都調用這組介面來完成具體邏輯。。。 其實有時候真分不清是什麼模式,只是怎麼好就怎麼設計最高境界是徹底忘記了什麼模式但隨時拿來就用,別人看見時驚呼XX模式使用者卻渾然不