Re: sql
Bin verunsichert.
In MS-SQL (kenn ich ab besten - was nicht heißen muß das ich's gut kenne :-)) gibt es Variablen, die von der Deklaration dem Oracle-Statement sehr änlich sind:
SQL-Code:
Das alles versteht sich aber als "innerhalb des DB-Servers" gültig und zugreifbar. Wenn ich von Delphi aus, also von Clientseite(ausserhalb Server) solche Variablen füllen möchte, dann mache ich es bisher so:
Declare @Variablenname Varchar(30), -- @ leitet lokale Variable ein
@@AndererName Integer -- @@ für globale Variablen set @Variablenname = 'Wert' -- Wertzuweisung in TransactSQL select @@AndererName = id from Tabelle where Bedingung -- Wertzuweisung aus Abfrage select * from Tabelle where ID = @@AndererName -- Zugriff auf Variable
Delphi-Quellcode:
Ende meines Lateins.
Query.SQL.Add('Declare @MeineVariable Integer ');
Query.SQL.Add(' set @MeineVariable = :MeinDelphiParameter'); // dieser Parameter wird von Delphi Query.SQL.Add(' select * '); // vor senden an die DB ersetzt Query.SQL.Add(' from Tabelle '); // sagt zumindest der Profiler Query.SQL.Add(' where Feld = @MeineVariable'); Gruß *InLernmodusUmschalt* |
Re: sql
@Leuselator
Dein ":MeinDelphiParameter" ist eine Variable mit der die DB arbeitet. Außer die Standard Delphi Compos zum DB-Zugriff ersetzen tatsächlich den SQL-Code. (Wär aber ziemlich bescheuert) Variablen sollte man eigentlich immer verwenden und auf fixe Vergleiche verzichten.
SQL-Code:
Denn wie Garby bereits sagte, deine DB wird jedesmal den Code neu Parsen müssen, die Ursprungsmenge der vorherigen Abfrage verwerfen und alles (wirklich alles!) neu holen.
XYZ = 'Hallo'
Mit bind-Variablen bleibt das Statement gleich - Es wird also nur neu gefiltert. Gerade in Anwendnugen, bei denen von vielen Clients ähnliche Abfragen gestellt werden wirst du merken, dass diese beim ersten Mal wie normal laufen und danach nur noch ein paar Millisekunden! Ich hoffe das beendet jetzt diese OT - Variablendiskussion. |
Re: sql
Hallo Delphi-Gemeinde
weiß jemand ob ADS mit dem Operator"AS" in einem SQL-String probleme hat?
Code:
fehler!
SELECT * FROM tbl_Typenschild AS TS
lasse ich "AS" weg klappt alles,im Codes vom Leuselator verwendete er einmal den Operator !(vom 1.12."3.20Uhr) Danke Klaus :gruebel: |
Re: sql
Hallo Klaus,
wie es bei ADS weiß ich nicht. Ich verwende den Operator "AS" bei anderen DB's (Informix, Oracle, Interbase, ...) ausschließlich für Tabellenspalten. Bei den Tabellen selbst lasse ich diesen weg! |
Re: sql
"AS" kann man in Standard-SQL nicht für ein Tabellen-Alias verwenden, schreib das Alias einfach dahinter.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 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