【delphi开源代码栏目提醒】:网学会员为需要delphi开源代码的朋友们搜集整理了DB_UTL.PAS相关资料,希望对各位网友有所帮助!
unit DB_UTL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables;
type
TFM_DB_UTL = class(TForm)
Query1: TQuery;
// procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end;
// ODBC 类 =====================================================================
FUNCTION DB_SET_ODBC_ACCESS(DATASOURCE_NAME ,PATHNAME:STRING):BOOLEAN;
FUNCTION DB_SET_ODBC_INI (INIFILENAME, DATASOURCE_NAME ,PATHNAME:STRING):BOOLEAN;
// ODBC 类 =====================================================================
// 数据库类 ====================================================================
FUNCTION DB_QUERY_TABLELIST(DATABASE_NAME:STRING):STRING; //列出 TABLE
FUNCTION DB_QUERY_FIELDLIST(TABLE_NAME:STRING):STRING; //列出 FIELD
FUNCTION DB_QUERY_FIND_VALUE(TNAME1, FNAME1, VALUE1, FNAME2:STRING):STRING;
FUNCTION DB_QUERY_FIND_VALUETEXT(TNAME1, FTEXT, FNAME2:STRING):STRING;
FUNCTION DB_QUERY_FIND_MAXDATE(TNAME1, FNAME1, FKEY1, VKEY1:STRING):STRING;
FUNCTION DB_QUERY_DEL_REC(TNAME1, FNAME1, VALUE1:STRING):INTEGER;
FUNCTION DB_QUERY_UPDATE_VALUE_REAL (TNAME1, FNAME1, VALUE1, FNAME2:STRING;VALUE2:REAL):BOOLEAN;
FUNCTION DB_QUERY_UPDATE_VALUE_REAL_ACC(TNAME1, FNAME1, VALUE1, FNAME2:STRING;VALUE2:REAL):BOOLEAN;
FUNCTION DB_QUERY_UPDATE_VALUE_STRING (TNAME1, FNAME1, VALUE1, FNAME2:STRING;VALUE2:STRING):BOOLEAN;
FUNCTION DB_QUERY_UPDATE_VALUE_DATE (TNAME1, FNAME1, VALUE1, FNAME2:STRING;VALUE2:TDATE):BOOLEAN;
// 数据库类 ====================================================================
// 找出该TABLE最大值 ===========================================================
FUNCTION TABLE_MAX_RECCOUNT(TNAME1:STRING):INTEGER;
FUNCTION TABLEFINDMAXCNT(TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
FUNCTION TABLEFINDMAXCNT2(TNAME1, FNAME1, FTITLE:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
FUNCTION DBTABLEFINDMAXCNT(TDBNAME,TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
FUNCTION TABLEFINDMAXITM(TNAME1, FNAME1,VALUE1,FNAME2:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
FUNCTION DBTABLEFINDMAXITM(TDBNAME, TNAME1, FNAME1,VALUE1,FNAME2:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
FUNCTION TABLEFINDMAXENO(TNAME1, FNAME1:STRING):STRING;
FUNCTION TABLEFINDMAXENO2(TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
// 找出该TABLE最大值 ===========================================================
//检查重复123 (含''号) =========================================================
FUNCTION TABLECHECK_RE1(TNAME1, FNAME1, WNAME1:STRING):INTEGER;
FUNCTION TABLECHECK_RE2(TNAME1, FNAME1, FNAME2, WNAME1, WNAME2:STRING):INTEGER;
FUNCTION TABLECHECK_RE3(TNAME1, FNAME1, FNAME2, FNAME3, WNAME1, WNAME2, WNAME3:STRING):INTEGER;
//检查重复123 (不含''号)
FUNCTION TABLECHECK_RED1(TNAME1, FNAME1, WNAME1:STRING):INTEGER;
FUNCTION TABLECHECK_RED2(TNAME1, FNAME1, FNAME2, WNAME1, WNAME2:STRING):INTEGER;
FUNCTION TABLECHECK_RED3(TNAME1, FNAME1, FNAME2, FNAME3, WNAME1, WNAME2, WNAME3:STRING):INTEGER;
// =============================================================================
//调用系统设置文件 ===============================================================
FUNCTION UNSETREAD (UNNAME, ID :STRING):STRING;
FUNCTION UNSETWRITE (UNNAME, ID, NAMEVALUE :STRING):BOOLEAN;
FUNCTION UNSETWRITEMRK(UNNAME, ID, NAMEVALUE, NAMEMARK :STRING):BOOLEAN;
FUNCTION UNSETREADMRK (UNNAME, ID :STRING):STRING;
//调用系统设置文件 ===============================================================
//调用系统设置文件2 ==============================================================
FUNCTION UNSET_READ_SST (LSTENO :STRING):STRING;
FUNCTION UNSET_READ_SIN (LSTENO :STRING):INTEGER;
FUNCTION UNSET_READ_SBL (LSTENO :STRING):BOOLEAN;
FUNCTION UNSET_READ_SME (LSTENO :STRING):STRING;
FUNCTION UNSET_WRITE_SST (LSTENO :STRING; VALUE :STRING ):BOOLEAN;
FUNCTION UNSET_WRITE_SIN (LSTENO :STRING; VALUE :INTEGER):BOOLEAN;
FUNCTION UNSET_WRITE_SBL (LSTENO :STRING; VALUE :BOOLEAN):BOOLEAN;
FUNCTION UNSET_WRITE_SME (LSTENO :STRING; VALUE :STRING ):BOOLEAN;
//调用系统设置文件2 ==============================================================
{FUNCTION COMM_OPENPORT(T_PORT:STRING):BOOLEAN;
FUNCTION COMM_CLOSEPORT:BOOLEAN;
FUNCTION COMM_DATACLEAR:BOOLEAN;
}
var
FM_DB_UTL: TFM_DB_UTL;
//系统特殊值
_DBKIND : STRING; // SERVER KIND (ACCESS和SQL SEVER替换)
_DT : STRING; // 日期值(ACCESS和SQL SEVER替换)
_SUMF : ARRAY[0..9] OF STRING; // SUM FIELD EXPR OR COLUM
_TRUE : STRING; //TRUE值(ACCESS和SQL SEVER替换)
_FALSE : STRING; //FALSE值(ACCESS和SQL SEVER替换)
//硬件变量
_BCP_DATA : STRING;
implementation
USES inifiles, Registry,
UN_UTL;//, sysini;
{$R *.DFM}
FUNCTION DB_SET_ODBC_ACCESS(DATASOURCE_NAME ,PATHNAME:STRING):BOOLEAN;
var REG: TRegistry;
D : STRING;
BEGIN
D := DATASOURCE_NAME;
REG := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
IF Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
Reg.WriteString(D,'Microsoft Access Driver (*.mdb)');
IF Reg.OpenKey('\Software\ODBC\ODBC.INI\'+D,True) then
BEGIN
Reg.WriteString ('Driver','C:\WINDOWS\SYSTEM\odbcjt32.dll');
Reg.WriteString ('DBQ',PATHNAME);
Reg.WriteInteger('DriverId',64);
Reg.WriteString ('FIL','MS Access;');
Reg.WriteInteger('SafeTransactions',0);
Reg.WriteString ('UID','');
END;
IF Reg.OpenKey('\Software\ODBC\ODBC.INI\'+D+'\Engines\Jet',True) then
BEGIN
Reg.WriteString ('ImplicitCommitSync','');
Reg.WriteInteger('MaxBufferSize',32768);
Reg.WriteInteger('PageTimeout',5);
Reg.WriteInteger('Threads',3);
Reg.WriteString ('UserCommitSync','Yes');
END;
RESULT := TRUE;
FINALLY
Reg.CloseKey;
Reg.Free;
END;
END;
FUNCTION DB_SET_ODBC_INI (INIFILENAME, DATASOURCE_NAME ,PATHNAME:STRING):BOOLEAN;
VAR T : Tinifile; // LOG FILE
SERVER_KIND : STRING;
BEGIN
IF FileExists(INIFILENAME) = FALSE THEN
BEGIN
FILE_CREATE(INIFILENAME);
DB_SET_ODBC_ACCESS(DATASOURCE_NAME , PATHNAME);
T := Tinifile.Create(INIFILENAME);
T.WRITEString('ODBC','SERVER','ACCESS');
T.WRITEString('ODBC','DATASOURCE_NAME',DATASOURCE_NAME);
T.WRITEString('ODBC','PATH_NAME' ,PATHNAME);
RESULT := TRUE;
END ELSE BEGIN
T := Tinifile.Create(INIFILENAME);
SERVER_KIND := T.READString('ODBC','SERVER' ,'ACCESS');
// MS ACCESS DRIVER
IF SERVER_KIND = 'ACCESS' THEN
BEGIN
DATASOURCE_NAME := T.READString('ODBC','DATASOURCE_NAME' ,
上一篇:
DynaMemuView.cpp
下一篇:
雍志祥_基于Ajax的BBS网站_论文正文