AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Datenbank - Verbindungsaufnahme

Firebird Datenbank - Verbindungsaufnahme

Ein Thema von toyoman · begonnen am 27. Mär 2006 · letzter Beitrag vom 27. Mär 2006
Antwort Antwort
Seite 2 von 2     12
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Firebird Datenbank - Verbindungsaufnahme

  Alt 27. Mär 2006, 13:36
Poste mal die datenbankbeschreibung und die Abfrage.
Markus Kinzler
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#12

Re: Firebird Datenbank - Verbindungsaufnahme

  Alt 27. Mär 2006, 15:52
Zitat von mkinzler:
Poste mal die datenbankbeschreibung und die Abfrage.
Es handelt sich um eine Datenbank der Softwareverteilung. Ich brauche den Zugriff immer nur LESEND.

Hier die Filterung welche den Fehler hervorruft:

Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
   strint:string;
   s: string;
begin
  query1.filtered:=false;
  if edit1.text<>'then
  begin
     s:=chr(39);
     if checkbox1.checked=true then
     begin
       if checkbox2.checked=true then
       begin
          strint:=edit1.text;
          query1.filter:='oname = ' + s + strint +s;
          query1.filtered:=true;
       end else
       begin
          strint:=edit1.text;
          query1.filter:='oname like ' + s + strint +'%'+s;
          query1.filtered:=true;
       end;
     end else
     begin
          query1.filtered:=false;
     end;
  end;
end;
Der SQL String der SQLQuery siehst so aus:
SQL-Code:
SELECT COOBJECTS.ONAME, COPROPITEMS.PINAME, COOBJECTS.OINACTIVE, COPROPVALUES.PVNAME, COOBJECTS.OFULLNAME, COOBJECTS.OEMAIL, COOBJECTS.OCOSTCENTER, COOBJECTS.OTYPE AS Kurz
FROM ((COPROPDATA INNER JOIN COOBJECTS ON COPROPDATA.OID = COOBJECTS.OID) INNER JOIN COPROPITEMS ON COPROPDATA.PIID = COPROPITEMS.PIID) INNER JOIN COPROPVALUES ON COPROPDATA.PVID = COPROPVALUES.PVID
WHERE (((COPROPITEMS.PINAME)='Components.Last User') AND ((COOBJECTS.OINACTIVE)='0') AND ((COOBJECTS.OTYPE)='M')) OR (((COPROPITEMS.PINAME)='Components.System.Manufacturer') AND ((COOBJECTS.OINACTIVE)='0')) OR (((COPROPITEMS.PINAME)='Components.System.Computer Model') AND ((COOBJECTS.OINACTIVE)='0')) OR (((COPROPITEMS.PINAME)='Components.System.Motherboard.SerialNumber') AND ((COOBJECTS.OINACTIVE)='0')) OR (((COPROPITEMS.PINAME)='Components.System.Processor.MaxSpeed') AND ((COOBJECTS.OINACTIVE)='0')) OR (((COPROPITEMS.PINAME)='Components.Storage.Memory.Total') AND ((COOBJECTS.OINACTIVE)='0')) OR (((COPROPITEMS.PINAME)='Components.Harddisk.TotalSize') AND ((COOBJECTS.OINACTIVE)='0'))
ORDER BY COOBJECTS.ONAME;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Firebird Datenbank - Verbindungsaufnahme

  Alt 27. Mär 2006, 16:10
Ist ja auch eine ganz einfache Abfrage.
Aber ohne die Berschreibung der Tabellen tue ich mich schwer:
Wieviele datensätze liefert die Grundabfrage? Grundsätzlich ist das clientseitige Filtern nicht optimal.Ich würde vorschlagen die Abfrage zu parametrisieren. Zerlege mal die Abfrage in Teilabfragen um zu sehen, wo der Fehler im Detail auftaucht.
Markus Kinzler
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#14

Re: Firebird Datenbank - Verbindungsaufnahme

  Alt 27. Mär 2006, 16:37
Zitat von mkinzler:
Ist ja auch eine ganz einfache Abfrage.
Aber ohne die Berschreibung der Tabellen tue ich mich schwer:
Wieviele datensätze liefert die Grundabfrage? Grundsätzlich ist das clientseitige Filtern nicht optimal.Ich würde vorschlagen die Abfrage zu parametrisieren. Zerlege mal die Abfrage in Teilabfragen um zu sehen, wo der Fehler im Detail auftaucht.
ja sehr einfach

Ok werdes mal versuchen mit einer vereinfachten Query.
Die Beschreibung der Tabellen zusammenzustellen ist schwierig. Sind so viele und ich habe da nur beschränkt Zugriff auf dieses Firebird Dingsbums. Ich hatte gehofft ich könnte das ganze normal wie eine SQL-Tabelle ansprechen. Bei mir auf dem PC ist ein ODBC Eintrag definiert welcher über den Firebird/Interbase Treiber auf den Server verbindet. Im Delphi mache ich dann eine Query über diese ODBC Verbindung.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Firebird Datenbank - Verbindungsaufnahme

  Alt 27. Mär 2006, 16:41
Lad dir maldie Personalversion des IBExperts herunter. Dort kannst du einen Metadatenexport machen und auch Testweise Queries an die Datenbank schicken, um so zu evaluieren ob das Problem an der Verbindung (ODBC recht suboptimal), Delphi oder an der Datenbank/Abfrage liegt.
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz