AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird: Simple Abfrage per IBX... O_o
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird: Simple Abfrage per IBX... O_o

Ein Thema von Robert_G · begonnen am 18. Mär 2005 · letzter Beitrag vom 19. Mär 2005
 
Robert_G
(Gast)

n/a Beiträge
 
#1

Firebird: Simple Abfrage per IBX... O_o

  Alt 18. Mär 2005, 12:10
Datenbank: FireBird • Version: 1.5 • Zugriff über: IBX :(
Ich muss gerade eine kleine App in Delphi32 bauen (einem 200 Jahre alten NT4 Server sei Dank. ).
Da ich dort nur in einer Cytrix session laufe dachte ich, ich nehme mir eine kleine Firebird und eine Echse mit, die anhand der kleinen DB und der darin enthaltenen Meta Daten SQL Statements absetzt, usw...

Schön und gut... Nur scheitere ich schon bei den simpelsten Dingen.

Mit dem Firebird Data provider für .Net funktioniert zum BLeistift das problemlos:
Code:
...
   IDbCommand someCommand = someConnection.CreateCommand();
   someCommand.Connection   = someConnection;
   someCommand.CommandType = CommandType.Text;
   someCommand.CommandText = "SELECT Id FROM MetaColumns WHERE MetaTable = @MetaTable";

   IDbDataParameter metaTable = someCommand.CreateParameter();
   metaTable.ParameterName = "@MetaTable";
   metaTable.DbType= DbType.Int64;
   metaTable.Value = Id;

   someCommand.Parameters.Add(metaTable);
   IDbDataReader = someCommand .ExecuteReader();
...
Das Äquvalent unter Delphi sollte eigentlich so aussehen (ich habe hier das drumrum mitgepostet...):
Delphi-Quellcode:
procedure TMetaTable.FetchColumns;
var
   ColumnId : Int64;
begin
   fColumns.Clear();

   with TIBQuery.Create(nil) do
   try
      Database := TMetaDatabase.Instance;
      Transaction := TIBTransaction.Create(nil);
      Transaction.DefaultDatabase := Database;

      with Sql do
      begin
         Add('SELECT Id');
         Add('FROM MetaColumns');
         Add('WHERE MetaTable = :MetaTable');
      end;

      ParamCheck := True;

      with ParamByName('MetaTable') do
      begin
         DataType := ftLargeInt;
         Value := Id;
      end;

      if not Prepared then
         Prepare();

      Open(); // <--- Hier zickt er rum

      while not Eof do
      begin
         ColumnId:= Fields[0].AsInteger;
         fColumns.Add(TMetaColumn.Create(ColumnId));
         Next();
      end;

   finally
      Free();
   end;
end;
Er sagt mir dabei aber nur "unsupported feature".
Das ganze funktioniert problemlos, wenn ich es im Designer in eine Query packen würde!
Aber eine olle Query auf eine Form ist natürlich nicht drin.

Ich habe es auch schon mit einer selectable procedure probiert -> ebenfalls Fehlanzeige.
Bin ich mittlerweile zu blöd für Delphi32?
Ist euch das schonmal untergekommen?
Ist das ein Kompatibilitätsproblem IBX <> FB?

Ich hoffe mal, dass ich einfach zu blöd bin.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz