execute block - dynamische Proceduren

September 28, 2010 - Lesezeit: 3 Minuten

Eine SQL-Statement nutzen, das alle Merkmale der Stored Procedure aufweist, ohne das dieses in der Datenbank definiert ist. Das ist mit "EXECUTE BLOCK" möglich:

 

EXECUTE BLOCK [(<inparams>)]
      [RETURNS (<outparams>)] AS [<var-decls>]
 BEGIN
   PSQL statement(s)
 END
 
<inparams>   ::=  paramname type = ? [, <inparams>]
<outparams>  ::=  paramname type [, <outparams>] 
<var-decls>  ::=  <var-decl> [<var-decls>]
<var-decl>   ::=  DECLARE [VARIABLE] varname type [= initvalue]; 
 

Beispiel: Ausgabe von 100 Sätzen mit 2 Feldern

 

execute block 
returns (NR integer,Txt varchar(100))
as
declare variable i integer;
begin
  i=0;
  while (i<100) do begin 
    i=i+1;
    NR=i;
    Txt='Satz: '||i;
    suspend;
  end
end

 

 

Tags: Firebird

Delphi 2009: Download einer Datei

September 20, 2010 - Lesezeit: ~1 Minute

Download einer Datei mit der TDownLoadURL - Action. Da diese Komponente DLL's des IE nutzt, braucht der Entwickler keine weiteren Einstellungen (Proxy ...) vorsehen.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls,
  ExtActns;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure Progress(Sender: TDownLoadURL; Progress, ProgressMax: Cardinal; StatusCode: TURLDownloadStatus; StatusText: string; var Cancel: Boolean);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TDownLoadURL.Create(nil) do
  try
    URL := 'http://../test.txt';      // URL der Datei
    Filename := '...\test.txt';       // Name der Datei
    OnDownloadProgress := Progress;   // Status des Downloads anzeigen
    Execute;
  finally
    Free;
  end;
end;

procedure TForm1.Progress(Sender: TDownLoadURL; Progress, ProgressMax: Cardinal; StatusCode: TURLDownloadStatus;
  StatusText: string; var Cancel: Boolean);
begin
  ProgressBar1.Max:=ProgressMax;
  ProgressBar1.Position:=Progress;
  Caption:=StatusText;
end;

end.
Tags: Delphi Delphi 2009

Firebird: Trigger für mehrere Ereignisse

September 15, 2010 - Lesezeit: ~1 Minute

ab Firebird 1.5 kann man einen Trigger erstellen, der für mehrere Ereignisse zuständig ist.

 


Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   ...
 end

 

 

 Um zu erkennen, in welche Aktion der Tabelle aufgerufen wurde, gibt es die neuen Variablen

 

INSERTING, UPDATING und DELETING 

 

Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   if (deleting) then proc(old.ID); else proc(new.ID);
 end

 

 

Tags: Firebird SQL

7. Brandenburger Linux-Infotag

September 9, 2010 - Lesezeit: ~1 Minute

7. Brandenburger Linux-Infotag

Tags: Linux Linuxtag

DelForExp 2.5.2 an Windows 7 für Delphi 2009 angepasst

August 13, 2010 - Lesezeit: ~1 Minute

DelForExp ist ein altes Opensource-Tool zur Formatierung von Delphi-Quellcode aus der IDE heraus. Es wurde von mir nur für Delphi 2009 und Windows Vista/7 angepasst.

Tags: Programme Freeware Delphi 2009

Neue Version dspSubversion

August 12, 2010 - Lesezeit: ~1 Minute

Die neue Version funktioniert jetzt auch unter Windows 7 richtig

Tags: Programme Freeware