Events, UDFs, Creates and Options

Discussion of open issues, suggestions and bugs regarding MyDAC (Data Access Components for MySQL) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
braune
Posts: 4
Joined: Fri 22 Jun 2012 11:51

Events, UDFs, Creates and Options

Post by braune » Sat 30 Jun 2012 08:52

hello,

have follwing wrote:

Code: Select all

procedure TDM.DoGetTableNames(const aDatabase: string; aList: TStrings);
var
  MData: TMyMetaData;
begin
  MData := TMyMetaData.Create(nil);
  aList.Clear;
  try
    MData.Connection := DB;
    MData.MetaDataKind := 'Tables';
    MData.Restrictions.Values['TABLE_TYPE'] := 'BASE TABLE';
    MData.Restrictions.Values['TABLE_SCHEMA'] := aDatabase;
    MData.Open;
    while not MData.eof do begin
      aList.Add(MData.FieldByName('TABLE_NAME').AsString);
      MData.next;
    end;
  finally
    MData.Free;
  end;
end;


procedure TDM.DoGetViewNames(const aDatabase: string; aList: TStrings);
var
  MData: TMyMetaData;
begin
  MData := TMyMetaData.Create(nil);
  aList.Clear;
  try
    DB.Database := aDatabase;
    MData.Connection := DB;
    MData.MetaDataKind := 'Tables';
    MData.Restrictions.Values['TABLE_TYPE'] := 'VIEW';
    MData.Restrictions.Values['TABLE_SCHEMA'] := aDatabase;
    MData.Open;
    while not MData.eof do begin
      aList.Add(MData.FieldByName('TABLE_NAME').AsString);
      MData.next;
    end;
  finally
    MData.Free;
  end;
end;

procedure TDM.DoGetProcedureNames(const aDatabase: string; aList: TStrings);
var
  MData: TMyMetaData;
begin
  MData := TMyMetaData.Create(nil);
  aList.Clear;
  try
    MData.Connection := DB;
    MData.MetaDataKind := 'Procedures';
    MData.Restrictions.Values['PROCEDURE_SCHEMA'] := aDatabase;
    MData.Restrictions.Values['PROCEDURE_TYPE'] := 'PROCEDURE';
    MData.Open;
    while not MData.eof do begin
      aList.Add(MData.FieldByName('PROCEDURE_NAME').AsString);
      MData.next;
    end;
  finally
    MData.Free;
  end;
end;

procedure TDM.DoGetFunctionNames(const aDatabase: string; aList: TStrings);
var
  MData: TMyMetaData;
begin
  MData := TMyMetaData.Create(nil);
  aList.Clear;
  try
    MData.Connection := DB;
    MData.MetaDataKind := 'Procedures';
    MData.Restrictions.Values['PROCEDURE_SCHEMA'] := aDatabase;
    MData.Restrictions.Values['PROCEDURE_TYPE'] := 'FUNCTION';
    MData.Open;
    while not MData.eof do begin
      aList.Add(MData.FieldByName('PROCEDURE_NAME').AsString);
      MData.next;
    end;
  finally
    MData.Free;
  end;
end;

procedure TDM.DoGetTriggerNames(const aDatabase: string; aList: TStrings);
var
  OldDatabase : string;
begin
  OldDatabase := DB.Database;
  aList.Clear;
  try
    DB.Database := aDatabase;
    DB.GetTriggerNames(aList);
  finally
    DB.Database := OldDatabase;
  end;
end;

procedure TDM.DoGetEventNames(const aDatabase: string; aList: TStrings);
begin
end;

procedure TDM.DoGetUDFNames(const aDatabase: string; aList: TStrings);
begin

end;
How can i get the Event and UDF Names?
How can i get the CREATEs of PROCEDURES, FUNCTIONS, TRIGGERS, EVENTS and the OPTIONS of UDFs

Thanks

braune
Posts: 4
Joined: Fri 22 Jun 2012 11:51

Re: Events, UDFs, Creates and Options

Post by braune » Mon 02 Jul 2012 09:15

nobody an idea?

AndreyZ

Re: Events, UDFs, Creates and Options

Post by AndreyZ » Mon 02 Jul 2012 11:53

To obtain information about events, you can use the "SHOW EVENTS" ( http://dev.mysql.com/doc/refman/5.1/en/show-events.html ) and "SHOW CREATE EVENT" ( http://dev.mysql.com/doc/refman/5.1/en/ ... event.html ) SQL statements.
To obtain information about triggers, you can use the "SHOW TRIGGERS" ( http://dev.mysql.com/doc/refman/5.1/en/ ... ggers.html ) and "SHOW CREATE TRIGGER" ( http://dev.mysql.com/doc/refman/5.1/en/ ... igger.html ) SQL statements.
To obtain information about procedures and functions, you can use the "SELECT * FROM mysql.proc", "SHOW CREATE PROCEDURE" ( http://dev.mysql.com/doc/refman/5.1/en/ ... edure.html ) and "SHOW CREATE FUNCTION" ( http://dev.mysql.com/doc/refman/5.1/en/ ... ction.html ) SQL statements.
To obtain information about UDFs, you can use the "SELECT * FROM mysql.func" SQL statement.

Post Reply