?? db_utl.pas
字號:
FUNCTION TABLE_MAX_RECCOUNT(TNAME1:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM '+TNAME1);
QDBCHECK.Close;
try
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsINTEGER;
EXCEPT
RESULT := -1;
END;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLEFINDMAXCNT(TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR SystemDate: TSystemTime; //系統日期
DATE_STR ,CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
GetLocalTime(SystemDate); //取系統日期
DATE_STR := FLOATTOSTR( SystemDate.wYear -1911);
IF SystemDate.wMonth >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wMonth < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wDay >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wDay );
IF SystemDate.wDay < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wDay );
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME1 +') FROM '+TNAME1);
QDBCHECK.SQL.Add('WHERE '+ FNAME1 +' LIKE '''+DATE_STR+'%''');
QDBCHECK.Close;
try
QDBCHECK.Open;
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
EXCEPT
CNT_STR := '0';
END;
IF COPY(CNT_STR,1,6) = DATE_STR THEN
BEGIN
CNT_STR := Copy_R(CNT_STR ,1 , NO_LENGTH); //取最右4位
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := DATE_STR + CNT_STR; //加日期
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLEFINDMAXCNT2(TNAME1, FNAME1, FTITLE:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR SystemDate: TSystemTime; //系統日期
DATE_STR ,CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
GetLocalTime(SystemDate); //取系統日期
DATE_STR := FLOATTOSTR( SystemDate.wYear -1911);
IF SystemDate.wMonth >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wMonth < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wDay >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wDay );
IF SystemDate.wDay < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wDay );
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME1 +') FROM '+TNAME1);
QDBCHECK.SQL.Add('WHERE '+ FNAME1 +' LIKE '''+FTITLE+'%''');
QDBCHECK.Close;
TRY QDBCHECK.Open;
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
EXCEPT
CNT_STR := '0';
END;
IF COPY(CNT_STR,1,LENGTH(FTITLE)) = FTITLE THEN
BEGIN
CNT_STR := Copy_R(CNT_STR ,1 , NO_LENGTH); //取最右4位
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := FTITLE + CNT_STR; //加日期
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION DBTABLEFINDMAXCNT(TDBNAME,TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR SystemDate: TSystemTime; //系統日期
DATE_STR ,CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
GetLocalTime(SystemDate); //取系統日期
DATE_STR := FLOATTOSTR( SystemDate.wYear -1911);
IF SystemDate.wMonth >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wMonth < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wMonth );
IF SystemDate.wDay >= 10 THEN DATE_STR := DATE_STR + FLOATTOSTR( SystemDate.wDay );
IF SystemDate.wDay < 10 THEN DATE_STR := DATE_STR + '0'+FLOATTOSTR( SystemDate.wDay );
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := TDBNAME;
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME1 +') FROM '+TNAME1);
QDBCHECK.SQL.Add('WHERE '+ FNAME1 +' LIKE '''+DATE_STR+'%''');
QDBCHECK.Close;
try
QDBCHECK.Open;
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
EXCEPT
CNT_STR := '0';
END;
IF COPY(CNT_STR,1,6) = DATE_STR THEN
BEGIN
CNT_STR := Copy_R(CNT_STR ,1 , NO_LENGTH); //取最右4位
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE
BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := DATE_STR + CNT_STR; //加日期
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLEFINDMAXITM(TNAME1, FNAME1,VALUE1,FNAME2:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME2 +') FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+' = '''+VALUE1+'''');
QDBCHECK.Close;
// SHOWMESSAGE( QDBCHECK.SQL.TEXT);
try
QDBCHECK.Open;
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
EXCEPT
CNT_STR := '0';
END;
IF QDBCHECK.EOF = FALSE THEN
BEGIN
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE
BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := CNT_STR;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION DBTABLEFINDMAXITM(TDBNAME, TNAME1, FNAME1,VALUE1,FNAME2:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := TDBNAME;
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME2 +') FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+' = '''+VALUE1+'''');
QDBCHECK.Close;
// SHOWMESSAGE( QDBCHECK.SQL.TEXT);
try
QDBCHECK.Open;
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
EXCEPT
CNT_STR := '0';
END;
IF QDBCHECK.EOF = FALSE THEN
BEGIN
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE
BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := CNT_STR;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLEFINDMAXENO(TNAME1, FNAME1:STRING):STRING;
VAR CNT_STR : STRING;
QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME1 +') FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.Close;
QDBCHECK.Open;
IF QDBCHECK.EOF = FALSE THEN
BEGIN
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
END ELSE
BEGIN
CNT_STR := '0';
END;
RESULT := CNT_STR;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLEFINDMAXENO2(TNAME1, FNAME1:STRING;NO_LENGTH, NO_STEP:INTEGER):STRING;
VAR CNT_STR : STRING; QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT MAX('+ FNAME1 +') FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.Close;
QDBCHECK.Open;
IF QDBCHECK.EOF = FALSE THEN
BEGIN
CNT_STR := TRIM(QDBCHECK.Fields[0].AsString);
CNT_STR := INTTOSTR( STRTOINTDEF(CNT_STR,0) + NO_STEP ); //加一位
CNT_STR := REPLICATE('0',NO_LENGTH- LENGTH(CNT_STR)) + CNT_STR; //加'0'
END ELSE BEGIN
CNT_STR := REPLICATE('0',NO_LENGTH);
END;
RESULT := CNT_STR;
FINALLY QDBCHECK.Free; END;
END;
FUNCTION TABLECHECK_RE1(TNAME1, FNAME1, WNAME1:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='''+WNAME1+'''');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLECHECK_RED1(TNAME1, FNAME1, WNAME1:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='+WNAME1+'');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLECHECK_RE2(TNAME1, FNAME1, FNAME2, WNAME1, WNAME2:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='''+WNAME1+'''');
QDBCHECK.SQL.Add(' AND '+FNAME2+'='''+WNAME2+'''');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLECHECK_RED2(TNAME1, FNAME1, FNAME2, WNAME1, WNAME2:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='+WNAME1+'');
QDBCHECK.SQL.Add(' AND '+FNAME2+'='+WNAME2+'');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLECHECK_RE3(TNAME1, FNAME1, FNAME2, FNAME3, WNAME1, WNAME2, WNAME3:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='''+WNAME1+'''');
QDBCHECK.SQL.Add(' AND '+FNAME2+'='''+WNAME2+'''');
QDBCHECK.SQL.Add(' AND '+FNAME3+'='''+WNAME3+'''');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
END;
END;
FUNCTION TABLECHECK_RED3(TNAME1, FNAME1, FNAME2, FNAME3, WNAME1, WNAME2, WNAME3:STRING):INTEGER;
VAR QDBCHECK : TQUERY;
BEGIN
TRY
QDBCHECK := TQUERY.Create(APPLICATION.Owner);
QDBCHECK.DatabaseName := 'MAIN';
QDBCHECK.SQL.Clear;
QDBCHECK.SQL.Add('SELECT COUNT(*) FROM');
QDBCHECK.SQL.Add( TNAME1);
QDBCHECK.SQL.Add('WHERE '+FNAME1+'='+WNAME1+'');
QDBCHECK.SQL.Add(' AND '+FNAME2+'='+WNAME2+'');
QDBCHECK.SQL.Add(' AND '+FNAME3+'='+WNAME3+'');
QDBCHECK.Close;
QDBCHECK.Open;
RESULT := QDBCHECK.Fields[0].AsInteger;
FINALLY
QDBCHECK.Free;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -