AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?
Thema durchsuchen
Ansicht
Themen-Optionen

DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

Ein Thema von baurat · begonnen am 12. Sep 2011 · letzter Beitrag vom 24. Sep 2011
Antwort Antwort
Seite 2 von 3     12 3      
baurat

Registriert seit: 20. Jan 2007
34 Beiträge
 
#11

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 21:28
Hey Jungs,

vielen Dank für die vielen schnellen Antworten - klasse!

Hast du dir schon mal die "Master Tabellen Beziehungen" in http://wiki.lazarus.freepascal.org/L...bf_Tutorial/de
angesehen? Das könnte dich weiterbringen.
Das hab ich angeschaut, ja. Aber soooo trivial ist es dann leider doch nicht, dass ich mit zwei Tabellen auskäme - ich muss über drei und z.T. noch mehr Tabellen verknüpfen - und das geht dann damit nicht (oder?)

Und es gab mal Delphi Komponenten:
TDataSet
Damit habe ich das immer gemacht.
Hm. Ich hab ja an der tdbf-Tabelle (also DBF-Tabelle) schon auch eine native DataSource dran hängen. Aber hilft mir das für joins? Die Sybase-Komponente ist leider nicht lizenzfrei

"Wenn" es sich um Visual Foxpro handelt, dann einfach den Visual Foxpro ODBC Treiber installieren und dann per ADO darauf zugreifen.

Damit klappt dann auch das JOIN
DAS klingt sehr gut, ich denke es ist in der Tat Visual Foxpro. Hatte mit ODBC + ADO und Delphi bislang noch nichts zu tun, deswegen... hat jemand vielleicht für den von dir beschriebenen Weg "zufällig" ein kleines Tutorial oder so...?

Aber wenn das ginge, wär es wohl genau das was ich brauche... *Hoffnung*!
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:13
Mit ADS (sybase) kannst Du in der lokalen Version kostenfrei arbeiten.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:18
Eine Suche bei Google bringt dich z.B. hierhin
OLEDB-Treiber, der tut auch mit ADO (eigentlich sogar besser als ODBC)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Singlepin

Registriert seit: 3. Sep 2011
10 Beiträge
 
#14

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:26
Um die Frage zu beantworten, bei den TDBF-Komponenten sind
Master-Detail Beziehungen natürlich auch über mehrere Tabellen möglich.
Sprich, Baumartige Strukturen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:30
Um die Frage zu beantworten, bei den TDBF-Komponenten sind
Master-Detail Beziehungen natürlich auch über mehrere Tabellen möglich.
Sprich, Baumartige Strukturen.
Bei dem VF-Treiber via ADO gibt man das Datenbank-Verzeichnis an und kann dann einfach per SQL die Tabellen ansprechen.
Das ist dann schon etwas einfacher in der Handhabung
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#16

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:32
Mit Standard Delphi geht es über TAdoCeonnection und TAdoQuery. Wichtig der richtige Connectionstring:

Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=<DEIN PFAD WO DIE DBF LIEGEN>;Mode=Share Deny None;Extended Properties=dBASE IV;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=17;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:42
Mit Standard Delphi geht es über TAdoCeonnection und TAdoQuery. Wichtig der richtige Connectionstring:

Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=<DEIN PFAD WO DIE DBF LIEGEN>;Mode=Share Deny None;Extended Properties=dBASE IV;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=17;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
Besser du setzt das in einen Code-Block
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=<DEIN PFAD WO DIE DBF LIEGEN>;Mode=Share Deny None;Extended Properties=dBASE IV;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=17;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
Allerdings kann man sich den Connectionstring ja auch schön per Doppelklick auf die ADOConnection zusammenklicken
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#18

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 12. Sep 2011, 22:52
Allerdings kann man sich den Connectionstring ja auch schön per Doppelklick auf die ADOConnection zusammenklicken
Ging auf meinem PC nicht. Ich musste die wichtigsten Teile manuell setzen und dann hat er das beim Speichern auf diesen Monsterstring expandiert. Kann man bestimmt die Hälfte von löschen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 13. Sep 2011, 07:03
Hm. Ich hab ja an der tdbf-Tabelle (also DBF-Tabelle) schon auch eine native DataSource dran hängen. Aber hilft mir das für joins? Die Sybase-Komponente ist leider nicht lizenzfrei
Die Zugriffskomponenten von SyBase sind IMHO kostenfrei. Nur für den ADS Server muss man bezahlen. Du hast aber DBF.
In den Komponenten ist die TADSQuery, welche perfekt SQL - Statemants verarbeitet.
Beim Zugriff (Benutzung von Index) kommt es auf die Indexe an.
Da gab es wohl:
.ndx (DBase II)
.ntx (Clipper)
.mdx / .cdx (?)
TDataSet von SyBase kann IMHO mit allen Indexformaten umgehen. Bei ADO bin ich mir da nicht so sicher.
Bei meinen Versuchen mit ADO habe ich es irgendwie mit dem OEM - Zeichensatz nicht hinbekommen.

Ich habe noch eine EXE bzw. Source. Da habe ich für einen Kunden nur ein Statement gezimmert, welches aus eine Datei geladen komplexe Daten angezeigt hat.
Bei Interesse könnte ich das schicken (Source ist mit DevExpress Grid, aber das Handling mit ADSQuery kann man als Basis sicher verwenden).
Ist aber etwas grösser (PN angebracht).

Wenn du es allerdings mit ADO lösen kannst, würde ich auf zusätzliche Komponenten verzichten.

Frank
Frank Reim

Geändert von dataspider (13. Sep 2011 um 07:26 Uhr)
  Mit Zitat antworten Zitat
baurat

Registriert seit: 20. Jan 2007
34 Beiträge
 
#20

AW: DBF-Neulingfrage: Wie kann ich eine Query über mehrere DBF-Tabellen joinen?

  Alt 13. Sep 2011, 22:39
Merci für die ausführlichen Hilfen, schau ich mir an und melde mich!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:37 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