AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei Acces Abfrage

Ein Thema von ereetzer · begonnen am 8. Dez 2012 · letzter Beitrag vom 8. Dez 2012
Antwort Antwort
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#1

Hilfe bei Acces Abfrage

  Alt 8. Dez 2012, 20:08
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo, vorweg ich habe überhaupt gar keine Ahnung von sql geschweige sql in Access.

Folgende Situation:
In einer Tabelle werde Pfade zu Dokumenten gespeichert.
Ich ermittle nun in einem Fenster ob diese Dokumente noch unter diesem Pfad zu finden sind. Wenn nein, liste ich den betreffenden Dokumentenpfad. bzw. den Datensatz auf
in einer Listbox.

Es gibt eine "Haupt"Tabelle: Dokument. Diese ist mit der Tabelle verbunden wor die Pfade gespeichert werden und zwar mit der ID der Haupttabelle.

Ich mag nun ermitteln welche Einträge der Haupttabelle das Dokument enthalten wo der Pfad nicht mehr existiert.(es kann sein, das der Dokumentenpfad mehren Einträgen der Haupttabelle zugeordnet ist)

So nach dem Motto: select * from Haupttabelle where Haupttabelle.id = Dokumentenpfadtabelle.nummer and Dokumentenpfadtabelle.Pfad = ListBoxEintrag. Aber so geht es nicht (Sinngemäß natürlich)

Mag mir wer helfen?

Das die Abfrage die nicht geht:
DM.ADOQuery2.SQL.Add('select * from Dokument where Dokument.ID = Bilder.Nummer AND Bilder.Bild = ' + listboxFilesNotFound.Items[listboxFilesNotFound.ItemIndex]);

Fehlermeldung: Ein parameteobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben.

Geändert von ereetzer ( 8. Dez 2012 um 20:26 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Hilfe bei Acces Abfrage

  Alt 8. Dez 2012, 22:04
Du must eine per Join eine Datenmenge nehmen, die beide Tabellen enthält. Du kannst dich ja nicht auf Felder der Tabelle Bilder beziehen, wenn du in diese Tabelle gar nicht "reinschaust". In SQL könnte das z.B so aussehen:

select * from Dokument, Bilder where ...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Hilfe bei Acces Abfrage

  Alt 8. Dez 2012, 22:11
Der Parameterfehler kommt da der Pfad ":" enthält, welches wenn ParamCheck nicht abgeschaltet wird zur Generierung der Parameter herangezogen wird.

Delphi-Quellcode:
// Besser
AdoDataset1.CommandText :=' Select * from Hauptabelle where ID in (Select Nummer from DokumentenpfadTabelle where Pfad=:Pfad)';

AdoDataset1.Parameters.ParamByName('Pfad').Value := ListboxEintrag;

// Notfalls
AdoDataset1.ParamCheck := False;
AdoDataset1.CommandText :=' Select * from Hauptabelle where ID in (Select Nummer from DokumentenpfadTabelle where Pfad=' + QuotedStr('ListboxEintrag') + ')';
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#4

AW: Hilfe bei Acces Abfrage

  Alt 8. Dez 2012, 22:50
Der Parameterfehler kommt da der Pfad ":" enthält, welches wenn ParamCheck nicht abgeschaltet wird zur Generierung der Parameter herangezogen wird.

Delphi-Quellcode:
// Besser
AdoDataset1.CommandText :=' Select * from Hauptabelle where ID in (Select Nummer from DokumentenpfadTabelle where Pfad=:Pfad)';

AdoDataset1.Parameters.ParamByName('Pfad').Value := ListboxEintrag;

// Notfalls
AdoDataset1.ParamCheck := False;
AdoDataset1.CommandText :=' Select * from Hauptabelle where ID in (Select Nummer from DokumentenpfadTabelle where Pfad=' + QuotedStr('ListboxEintrag') + ')';
ich danke Euch beiden.

@Jumpy: das hatte ich mittlerweile auch. hat den Nachteil, das die Datenzeile beide Tabellen als Inhalt hat. Aber hat mir wieder was gegeben (stichwort: reinschauen)
Die "besser" Lösung von Bummi passt genau so, wie ich es wollte, von daher: DANKE!

So recht checke ich das aber noch nicht mit den Parametern. Naja, im Prinzip schon, aber trotzdem, da muss ich nochmal was zum lesen finden. Das mag ich jetzt wissen.

Geändert von ereetzer ( 8. Dez 2012 um 22:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:04 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