AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie funktioniert SQL.LoadFromFile
Thema durchsuchen
Ansicht
Themen-Optionen

Wie funktioniert SQL.LoadFromFile

Ein Thema von I_need_help · begonnen am 26. Aug 2004 · letzter Beitrag vom 9. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
I_need_help
(Gast)

n/a Beiträge
 
#1

Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 10:41
Hallöchen zusammen,

ich weiß, dass dieses Thema schon einmal hier angesprochen wurde, nur die Antworten passen nicht so ganz zu meinem Problem.

Ich möchte eigentlich gern generell mal wissen, was bei der Funktion SQL.LoadFromFile genau im Hintergrund läuft. Warum? Ich versuche auf diese Weise eine .sql-Datei auszuführen (per PL/SQL geschrieben mit declare, begin, end u.s.w.).

Doch leider läuft das nicht so, wie ich gern hätte. Statt dessen wird wohl alles gelesen und interpretiert (auch Kommentare) und nach der Bedeutung von "Parametern" gefragt, bspw. wenn im SQL-Kommentar die Anweisung

 spool C:\meinordner\meinlog.log steht.

Werden beim Aufruf SQL.LoadFromFile grundsätzlich nur SQL-Anweisungen in der Form abgearbeitet, wie man sie auch bei SQL.ADD() reinschreibt?? Gibt es wenn ja einen anderen Weg aus Delphi heraus PL/SQL-Files ans Laufen zu bringen??

Bin echt ratlos...

Gruß i_need_help
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 10:48
Zitat von I_need_help:
Werden beim Aufruf SQL.LoadFromFile grundsätzlich nur SQL-Anweisungen in der Form abgearbeitet, wie man sie auch bei SQL.ADD() reinschreibt??
Ganz genau... SQL ist vom Typ TStrings, was nichts anderes ist als eine Liste von Strings. Ganze SQL Skripte kanns du also so nicht ausführen, sorry. Ich hatte das Problem auch schon, sowohl bei MySQL als bei MSSQL, und habs so gelöst, daß ich mir die einzelnen SQL Anweisung rausgeaprsed hab und einzel ausgeführt hab. Die Anweisung sind bei MySQL durch ";" getrennt, bei MSSQL durch den Befehl "GO".

Gruß,
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 10:52
TQueryDescendant.SQL ist ja vom Typ TStrings. Also wird ein LoadFromFile nichts weiter machen, als den inhalt der Datei in die StringList zu laden.
Zitat:
Code:
-- #1--> spool C:\meinordner\meinlog.log
Das ist kein Befehl, mit dem Oracle etwas anfangen kann. "Spool" ist teil der SQL Plus Syntax.
wenn du ähnliches bewerkstelligen willst, schaue dir mal die Packages DBMS_OutPut oder UTL_File an.
  Mit Zitat antworten Zitat
I_need_help
(Gast)

n/a Beiträge
 
#4

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 10:56
oh man, das habe ich fast befürchtet.

das heißt also, jedes einzelne Statement aus meinem sql-script packe ich in eine add()-Anweisung??
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 11:01
Zitat von I_need_help:
oh man, das habe ich fast befürchtet.

das heißt also, jedes einzelne Statement aus meinem sql-script packe ich in eine add()-Anweisung??
Natürlich nicht.
Sonst wärst du wieder bei SQL.LoadFromFile angelangt.

Nehmen wir an du hast das da:
SQL-Code:
  INSERT INTO X (Y, Z) VALUES (1, 2);
  INSERT INTO X (Y, Z) VALUES (3, 4);
  INSERT INTO X (Y, Z) VALUES (5, 6);
Was hält dich davon ab, es in einen anonymen Block zu packen?
SQL-Code:
begin
  INSERT INTO X (Y, Z) VALUES (1, 2);
  INSERT INTO X (Y, Z) VALUES (3, 4);
  INSERT INTO X (Y, Z) VALUES (5, 6);
end;
  Mit Zitat antworten Zitat
I_need_help
(Gast)

n/a Beiträge
 
#6

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 11:26
okay danke erst mal. ich probier mal ein bisschen rum.

eine weitere idee wär ja, aus delphi das sql-worksheet zu starten, die datei da reinzuladen und ausführen zu lassen...
  Mit Zitat antworten Zitat
I_need_help
(Gast)

n/a Beiträge
 
#7

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 15:32
Hallöchen nochmal,

nach langem Hin- und Herprobieren hab ich nun eine etwas andere Lösung gefunden. Dank des gut bestückten Forums hier, starte ich aus Delphi heraus einen Batch, der dann mein SQL auf der Windows-Shell ausführt. Verwendet hab ich dafür TCustomFileRun für das Starten der *.bat und in der *.bat starte ich mit sqlplus USER/passwort@Datenbank meinedatei.sql die SQL-Abfrage.

Alles was nun noch fehlt ist, wie das geöffnete Shellfenster wieder geschlossen werden kann, da der "quit" oder "exit" Befehl im *.bat ignoriert wird (befinde mich ja nach sqlplus-Aufruf in der Kommandozeile von SQL Plus).

Aber schon mal vielen Dank, stöbere immer wieder gern hier.
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#8

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 16:57
Nachdem Du offenbar mit Oracle arbeitest: Hast Du schon mal die ohnehin empfehlenswerten ODAC-Komponenten von www.crlab.com abgeschaut? Dort gibt es auch eine SQL-Skript-Komponente.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Wie funktioniert SQL.LoadFromFile

  Alt 26. Aug 2004, 17:05
Zitat von Alfons_G:
Nachdem Du offenbar mit Oracle arbeitest: Hast Du schon mal die ohnehin empfehlenswerten ODAC-Komponenten von www.crlab.com abgeschaut? Dort gibt es auch eine SQL-Skript-Komponente.
Es gibt auch DirectOracleAccess von allround automations.
Mit einem Unterschied, die DOA Klassen sind sehr eng mit der OCI und dadurch mit dem OracleClient verschmolzen -> _wesentlich_ effizienteres Caching als bei CoreLabs.
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#10

Re: Wie funktioniert SQL.LoadFromFile

  Alt 27. Aug 2004, 12:47
Ich verwende ODAC üblicherweise mit aktiver NET-Option, da unsere Kunden oft keinen Oracle-Client auf ihren Systemen installiert haben wollen.

Alfons Grünewald



Alfons Grünewald
  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 21:54 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