Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];

Вниз

Наследник от TMySqlQuery из zeos lib   Найти похожие ветки 

 
denkop   (2003-10-02 10:04) [0]

Состряпал простенький компонент, который логирует выполняемые запросы. Вот код:

unit MySqlLog;

interface

uses
SysUtils, Classes, DB, ZQuery, ZMySqlQuery, Windows, Dialogs;

type
TLogMySql = class(TMySqlQuery)
private
{ Private declarations }
LogFile : Text;
FFileName : TFileName;
FActiveLog : boolean;
function DirExists(Name: string): Boolean;
procedure AddLogItem(Item: string);
protected
{ Protected declarations }
public
{ Public declarations }
procedure ClearLog;
procedure ExecLogSQL;
published
{ Published declarations }
property FileName: TFileName read FFileName write FFileName;
property ActiveLog: Boolean read FActiveLog write FActiveLog;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Zeos Common", [TLogMySql]);
end;

procedure TLogMySql.AddLogItem(Item: string);
begin
if not FileExists(FFileName) then
begin
if not DirExists(ExtractFilePath(FFileName)) then
raise Exception.Create("Log file path not exist") else
ClearLog;
end;
System.Assign(LogFile, FFileName);
System.Append(LogFile);
System.Writeln(LogFile,Item);
System.Close(LogFile);
end;

function TLogMySql.DirExists(Name: string): Boolean;
var
Code: Integer;
begin
Code := GetFileAttributes(PChar(Name));
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;

procedure TLogMySql.ExecLogSQL;
var
Str:string;
i:integer;
begin
ExecSQL;
if not FActiveLog then Exit;
Str:="# ["+DateTimeToStr(Now)+"]";
AddLogItem(Str);
for i:=0 to SQL.Count-1 do
begin
Str:=SQL.Strings[i];
if i=SQL.Count-1 then AddLogItem(Str+";");
end;
AddLogItem("");
end;

procedure TLogMySql.ClearLog;
begin
if not DirExists(ExtractFilePath(FFileName)) then
raise Exception.Create("Log file path not exist");
System.Assign(LogFile, FFileName);
ReWrite(LogFile);
System.Close(LogFile);
end;

end.

При попытке скомпилировать компонент получаю ошибку:
[Error] Never-build package "PMySqlLog" requires always-build package "ZMySQL5"
[Error] Never-build package "PMySqlLog" requires always-build package "ZDbware5"
[Error] Never-build package "PMySqlLog" requires always-build package "ZCommon5"


 
pasha_golub   (2003-10-02 11:26) [1]

Так судя по всему ты его хочешь в пакет к Zeosam закинуть, а он те не дает. Добавь его в dclusr.dpk


 
DenKop   (2003-10-02 11:49) [2]

Не совсем, вот код пакета:

package PMySqlLog;

{$R PMySqlLog.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION "MySqlLog"}
{$IMPLICITBUILD OFF}

requires
rtl,
dbrtl,
vcl,
ZCommon5,
ZDbware5,
ZMySQL5,
designide,
vclactnband,
vclx,
bdertl,
vcldb;

contains
MySqlLog in "MySqlLog.pas";

end.

Не знаю почему, но отдельным пакетом он не становится, а вот dclusr.dpk стал без проблем...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
3-40284
nm
2003-09-22 13:53
2003.10.13
Получение информации о таблицах в ADO по команде OpenSchema


1-40401
Beglec
2003-10-01 01:03
2003.10.13
Кто нибуть пробывал рабоать с архиваторами (типа RAR)


14-40681
Qwerr
2003-09-23 13:14
2003.10.13
Cristal Reports + Delphi7


14-40672
sad
2003-09-19 08:14
2003.10.13
Поэзия Delirium.Tremes


1-40431
Vinter
2003-10-03 07:12
2003.10.13
TreeView и drag&drop





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский