AGB  ·  Datenschutz  ·  Impressum  







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

Tabellen verbinden

Ein Thema von Schuby · begonnen am 20. Nov 2019 · letzter Beitrag vom 21. Nov 2019
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Tabellen verbinden

  Alt 20. Nov 2019, 17:35
Hallo,
bitte noch einmal
Zitat:
Am Besten mal die Abfrage unabhängig von FastReports ausführen.
Ausserdem wäre es besser, beim Order By über die p.id zu gehen
order by
p.id;
weil die u.user_id ja NULL sein könnte
Heiko
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
111 Beiträge
 
#2

AW: Tabellen verbinden

  Alt 20. Nov 2019, 17:46
Gleicher Fehler.. unabhängig von FastReports gemacht.

Delphi-Quellcode:
select
    p.*, u.user_id
from
    person p LEFT OUTER JOIN urlaub u ON u.user_id = p.id
order by
    p.id;
Fehler -> Im Ausdruck stimmt ein Datentyp nicht überein



Frage ? Kann es sein weil Table1 person.id ein Counter ist ?



mfg
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Tabellen verbinden

  Alt 20. Nov 2019, 17:57
Wenn ungewöhnliche Daten angezeigt werden und scheinbar alles stimmt, einfach mal einzeln selektieren und alles ausgeben, auch die vermeintlich gesetzten ID.

also
Code:
select * from person
und

Code:
select * from urlaub
auch nicht schlecht wäre von beiden Tabellen das Create Statement anzuzeigen / abzufragen.

Deine Frage kannst Du selber am besten beantworten, solange Du nicht den Tabellenaufbau zeigst.

"Counter" beschreibt vermutlich ein Verhalten , nicht unbedingt einen Datentyp.
Gruß, Jo
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
111 Beiträge
 
#4

AW: Tabellen verbinden

  Alt 20. Nov 2019, 18:03
FastReport lasse ich erstmal links liegen.

Ich habe mir ADOQuery / mit einen DBGrid erstellt das ich sehe was passiert.

select * from person //ok wird angezeigt
select * from urlaub //ok wird angezeigt


Delphi-Quellcode:
Procedure TForm1.Table1_erstellen;
const
 cCRLF = #13#10;
 cCreateDaten = 'CREATE TABLE person(' + cCRLF
 + 'Id counter,'                 + cCRLF //
 + 'datum varchar(10),'                + cCRLF //
 + 'name varchar(20),'                + cCRLF //
 usw.....
Das meinte ich mit id, weil es ein Counter ist


mfg
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Tabellen verbinden

  Alt 20. Nov 2019, 19:18
Counter ist eine realtiv ungewöhnliche Bezeichnung.

Man nennt das normalerweise Autoincrement. Aber bei ACCESS ist vieles nicht Standard.
Counter ist vielleicht ein INT, du kannst selbst versuchen herauszufinden, welcher Datentyp wirklich hinter dem Typ Counter steckt.
Entsprechend sollten die Referenzwerte in anderen Tabellen dann halt auch vom Typ INT sein.

Eigentlich würde ich erwarten, dass auch ACCESS es nicht so genau nimmt, wenn es auf der einen Seite INT ist und auf der anderen meinetwegen BIGINT, aber vielleicht hast Du ja versehentlich ein CHAR oder DATE genommen.

Und wegen des 'vielleicht' nochmal der Hinweis:
Viele dieser Fehler sind reine Flüchtigkeitsfehler, solange Du nicht im Klartext zeigst, was da steht, muss ich erfahrungsgemäß befürchten, dass das gar nicht da steht. Du schreibst halt im Zweifel nur das, was Du selbst glaubst, dass es da stünde.

Deshalb macht man es gern so, dass man 1:1 hinschreibt, was das Problem bereitet, echter Code, echte Daten und wie der Fehler lautet. So kann es jeder per Copy Paste nachvollziehen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Tabellen verbinden

  Alt 21. Nov 2019, 07:02
Die Definition der zweiten Tabelle fehlt noch. Nur dann kann man sehen, warum beim SQL gemeckert wird.
Counter entspricht in Access dem Typ Long, wenn ich mich richtig erinnere.

Abgesehen davon:
+ 'datum varchar(10),' + cCRLF //
Ich hoffe, du musst nie nach dem Datum sortieren. Das wird nämlich mit dem Typ varchar für das Datum nicht funktionieren. Ich weiß nicht welcher das bei Access genau ist, aber ich meine "Date" oder "DateTime".
Peter

Geändert von Jasocul (21. Nov 2019 um 07:15 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 21:31 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-2025 by Thomas Breitkreuz