AGB  ·  Datenschutz  ·  Impressum  







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

SQL

Ein Thema von Chester · begonnen am 26. Jul 2005 · letzter Beitrag vom 26. Jul 2005
Antwort Antwort
Benutzerbild von Chester
Chester

Registriert seit: 16. Nov 2004
Ort: reutte
11 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL

  Alt 26. Jul 2005, 12:48
Datenbank: Oracle • Zugriff über: Oraclekomponenten
Ich möchte einen Datensatz in einer Tabelle hinzufügen, aber ich greife über eine Query auf zwei Tabellen zu.
So schaut mein SQL aus: Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI
Und wenn ich 'Post' sagen kommt der Fehler "TABZWEISP besitzt keinen Wert", aber ich habe rowid nur bei der ersten Tabelle????
Man muss immer auf den Grund tauchen um etwas zu erreichen und nicht an der Oberfläche dahin schwimmen!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: SQL

  Alt 26. Jul 2005, 13:28
Zitat von Chester:
Ich möchte einen Datensatz in einer Tabelle hinzufügen, aber ich greife über eine Query auf zwei Tabellen zu.
So schaut mein SQL aus: Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI
Und wenn ich 'Post' sagen kommt der Fehler "TABZWEISP besitzt keinen Wert", aber ich habe rowid nur bei der ersten Tabelle????
Deine Query ist ein CROSSJOIN; d.h. jeder Datensatz aus TABELLEEINS wird mit jedem Datensatz aus TABELLEZWEI kombiniert.
So eine Abfrage ist nicht Updatefähig. Du kannst also nicht die Daten aus 2 Tabellen zusammenwürfeln und
annehmen der DB-Treiber könnte Änderungen in die richtige Tabelle zurückschreiben.

Das Feld t.rowid ist übrigens doppelt in der Feldliste. Die Angabe t.* liefert nämlich
auch schon das Feld rowid.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

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

Re: SQL

  Alt 26. Jul 2005, 14:19
Zitat von shmia:
Das Feld t.rowid ist übrigens doppelt in der Feldliste. Die Angabe t.* liefert nämlich
auch schon das Feld rowid.
Muss ich widersprechen. t.* liefert die rowid nicht mit.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: SQL

  Alt 26. Jul 2005, 16:58
Zitat von Chester:
Select t.*, TABZWEISP, TABZWEILP, t.rowid from TABELLEEINS t, TABELLEZWEI
Aus was für Tabellen sind denn TABZWEISP und TABZWEILP... Wenn du schon mit Aliasen (nennt man das so, die Mehrzahl von Alias ) arbeitest (siehe TABELLEEINS t), dann aber auch konsequent und überall über all deine Tabellen.

Aber Update wirst du die Abfrage trotzdem nicht können. Da musst du schon einen INNER JOIN einbauen, sonst wird das nix.
  Mit Zitat antworten Zitat
Benutzerbild von Chester
Chester

Registriert seit: 16. Nov 2004
Ort: reutte
11 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: SQL

  Alt 26. Jul 2005, 17:33
Genau innerjoin hab ich gebraucht... Mir ist´s nicht mehr eingefallen. thx
Man muss immer auf den Grund tauchen um etwas zu erreichen und nicht an der Oberfläche dahin schwimmen!
  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 09:21 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