AGB  ·  Datenschutz  ·  Impressum  







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

SELECT INTO mit BDE

Ein Thema von mjenke · begonnen am 25. Apr 2003 · letzter Beitrag vom 13. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

SELECT INTO mit BDE

  Alt 25. Apr 2003, 11:16
Hallo, alle miteinander!

Ich habe folgendes Problem: Ich will die Daten zweier Tabellen in einer Tabelle zusammenfassen. Dies will ich mit einem SQL-Statement hinkriegen. Dabei müssen die Spaltennamen (die in den beiden Ausgangstabellen gleich lauten) auf neue Spaltennamen abgebildet werden.
Als Beispiel: Tabelle1.Name wird zu TabelleNeu.Name1, Tabelle2.Name wird zu TabelleNeu.Name2.

Mit MicrosoftJetSQL gibt es das SELECT INTO-Statement. Wenn ich das mit der BDE versuche, klappt es nicht. Das INTO stört die BDE. Dieses INTO wäre aber genau das, was ich brauche...

Dies ist die Abfrage, wie sie im Augenblick aussieht - und leider mit der BDE nicht funktioniert...

Code:
SELECT t1.Name As Name1, t1.Vorname AS Vorname1, t2.Name AS Name2, t2.Vorname AS Vorname2
INTO zusammenfassung
FROM test t1 INNER JOIN
testII t2 ON (t1.Note1 = t2.Note1)
Vielleicht kann mir damit jemand aushelfen?


Vielen Dank schonmal,
Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 25. Apr 2003, 11:36
Hallo mjenke,

das geht mit INSERT:

Delphi-Quellcode:
INSERT INTO tabelle
   SELECT ...
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#3
  Alt 25. Apr 2003, 11:59
Bingo, Mr. Spock!!!

Mit folgender Query klappt es tatsächlich

Code:
INSERT INTO zusammenfassung (Name1,Vorname1,Name2,Vorname2)
SELECT t1.Name, t1.Vorname, t2.Name, t2.Vorname FROM
test t1 INNER JOIN testII t2 ON (t1.Note1 = t2.Note1)
Vielen Dank!


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 25. Apr 2003, 12:06
Hallo mjenke,

freut mich, dass es gleich funktioniert hat.

Ich meine man kann sogar die Klammer mit den vier Feldern weglassen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5
  Alt 25. Apr 2003, 12:37
Hallo Matthias, hallo MrSpock,

wenn ich nativ auf Informix zugreife funktioniert bei mir auch:
SQL-Code:
select spalten
FROM tabelle
where Bedingung1
and bedingung2
...
into Temp tmp_vtr_vorg;
Es kann also nicht an der BDE liegen. Welches DBS wird verwendet und wie erfolgt der Zugriff (ODBC, nativ, ADO)?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 25. Apr 2003, 13:08
Hallo r_kerber,

das liegt daran, dass der Umfang von lokal SQL eingeschränkt ist. Bei Informix hast du den vollen SQL Umfang zur Verfügung.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#7
  Alt 25. Apr 2003, 13:19
Zitat von MrSpock:
das liegt daran, dass der Umfang von lokal SQL eingeschränkt ist.
Ist schon klar, deshalb die Frage nach der Datenbank. Wenn ich über die BDE nativ auf Informix zugreife, dann habe ich nicht die Beschränkungen der lokalen SQL. Die gelten meines Wissens ja nur beim Zugriff auf Paradox und dBase.
Wie es bei ODBC über BDE aussieht, weiß ich nicht.
  Mit Zitat antworten Zitat
Seven

Registriert seit: 4. Dez 2003
44 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: SELECT INTO mit BDE

  Alt 13. Feb 2004, 12:52
Hallo zusammen,
das hier klappt prima bei Informix

Zitat:
wenn ich nativ auf Informix zugreife funktioniert bei mir auch:
Source:
select spalten
FROM tabelle
where Bedingung1
and bedingung2
...
into Temp tmp_vtr_vorg;
Meine Frage ist jetzt, wie kann ich mit dem Ergebnis aus tmp_vtr_vorg weitersuchen?

select a.spalte1, b.spalte1
from tabelle1 a, tmp_vtr_vorg b
where a.spalte2=b.spalte2

Beim probieren mault das Prg immer, das es tmp_vtr_vorg nicht gibt.

Über den SQL-Explorer klappt es aber.
*Vermutungein*
beim SQL-Explorer bleibt die tmp Tabelle offen. Bei Delphi wird sie wohl mit jeder neuen Query geschlossen.
*Vermutungaus*
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#9

Re: SELECT INTO mit BDE

  Alt 13. Feb 2004, 13:20
Hallo Seven,

das könnte an der Transaktionskontrolle liegen. Du musst die erste Transaktion mit COMMIT abschließen. Der Zugriff auf tmp_vtr_vorg könnte dann mit einer neuen Transaktion gestartet werden, dabei ist evtl. wichtig, dass die Transaktion alle bereits mit COMMIT abgeschlossenen Transaktionen berücksichtigt und nicht mit einem Snapshot arbeitet.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Seven

Registriert seit: 4. Dez 2003
44 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: SELECT INTO mit BDE

  Alt 13. Feb 2004, 14:23
Hallo MrSpock,

erstmal Danke für die antwort. Lider klappt das nicht so wie beschrieben, oder ich mache etwas falsch. Ich greife über die BDE mittels ODBC-Treiber auf eine Informix 7.3 Datenbank zu. Können Sie ein paar weitere Angaben mache, wie ich es umsetzen kann auf eine temporäre Tabelle zuzugreifen.

Danke im voraus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:42 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