Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Update SQLs (https://www.delphipraxis.net/4435-update-sqls.html)

Mauli 29. Apr 2003 10:05


Update SQLs
 
Schönen guten Morgen zusammen,

ich muss für 2 Tabellen eine Update SQL schreiben.

Problem: die SQL muss ich je ca. 40 mal ändern.

Erst einmal eine dieser SQL:

Delphi-Quellcode:
Update Table1
SET Kunde = 'Kunde1'
WHERE PORTFOLIO LIKE ('Kunde1%')
und

Delphi-Quellcode:
Update Table2
SET FELD72_TXT = 'Kunde1'
WHERE CAST(DEPOT as CHAR(10)) LIKE ('0815%')
OR CAST(DEPOT as CHAR(10)) LIKE ('0816%')
OR CAST(DEPOT as CHAR(10)) LIKE ('0817%')
Damit wäre 1 Kunde eingefügt. Das Ganze läuft für ca. 40 Kunden. Sprich 80 SQLs???

Kann mir jemand helfen, wie ich das möglichst geschickt löse? Auch gerne ohne die Update SQL. (1 SQL läuft momentan ca. 2 Minuten :cry: )

Danke

Jens Schumann 30. Apr 2003 07:08

Hallo,
Du musst nicht 80 SQL's schreiben. Das wäre auch viel zu starr.
Verwende doch Paramter.

APP 30. Apr 2003 08:53

Hallo,
so ein ähnliches Problem hatten wir schon einmal,Mehrere Suchbegriffe in einem Datensatz suchen dort gibt es auch verschiedene Varianten mit/ohne Parameter.

markon 17. Okt 2003 10:29

Re: Update SQLs
 
hallo.
hab auch gerade ein problem mit einer sql abfrage:
Delphi-Quellcode:
  DM_Tabelle.adoquery3.sql.text := 'select * from tabelle1 where name like %such%';
wobei %such% eine variable vom typ string ist.

ich möchte praktisch einen string eingeben, z.b. 'erl' und die suche soll mir alle namen ausgeben in denen 'erl' vorkommt.

statisch geht das ja ganz gut.
Delphi-Quellcode:
  DM_Tabelle.adoquery3.sql.text := 'select * from tabelle1 where name like "%erl%"';
hat jemand nen tipp?

Hansa 17. Okt 2003 10:35

Re: Update SQLs
 
Zitat:

Zitat von markon
hallo.
hab auch gerade ein problem mit einer sql abfrage:
...
ich möchte praktisch einen string eingeben, z.b. 'erl' und die suche soll mir alle namen ausgeben in denen 'erl' vorkommt.

statisch geht das ja ganz gut.

Ich mache das so:

Delphi-Quellcode:
DM_Tabelle.adoquery3.sql.text := 'select * from tabelle1 where name like "%"+Edit1.Text+"%"';

Alfons_G 20. Okt 2003 15:15

Re: Update SQLs
 
Man sollte bei Suchbegriffen, welche aus Anwendereingaben direkt in Queries übernommen werden, IMMER die Funktion QuotedStr() einsetzen. Damit werden zusätzliche Anführungszeichen in der Benutzereingabe maskiert und der Text insgesamt in Hochkommas gesetzt.

:coder:

Hansa 20. Okt 2003 16:55

Re: Update SQLs
 
Wieso brauche ich aber nie welche ? :shock: Das scheint an der Groß/Kleinschreibung zu liegen. So wurde mir jedenfalls von Borland mitgeteilt. Die haben gesagt: "wird ALLES groß oder klein geschrieben, so braucht man die Hochkommas nicht !". Seitdem schreibe ich alles, was mit SQL zu tun hat groß und das wars echt. Zumindest bei Interbase.

Alfons_G 21. Okt 2003 09:06

Re: Update SQLs
 
Ich hab' auch SUCHBEGRIFFE gemeint, welche der Anwender eingibt und nicht SQL-Anweisungen. Der Tipp von Borland bezieht sich auf Feld- und Tabellennamen.

:coder:

Hansa 21. Okt 2003 09:33

Re: Update SQLs
 
Zitat:

Zitat von Alfons_G
Ich hab' auch SUCHBEGRIFFE gemeint, welche der Anwender eingibt und nicht SQL-Anweisungen. Der Tipp von Borland bezieht sich auf Feld- und Tabellennamen.

Dann gibts ja auch noch UpCase und dann wird das ganze wohl perfekt, oder nicht ? Völlig ohne Hochkommas und QuotetStrings.

markon 23. Okt 2003 15:18

Re: Update SQLs
 
hab hilfe von einem anderen user bekommen.
hatte bisher:
Delphi-Quellcode:
DM_Tabelle.adoquery3.sql.text := 'select * from tabelle1 where name like "%"+ed_such.text+"%"';
die zeile muss aber so aussehen:
Delphi-Quellcode:
DM_Tabelle.adoquery3.sql.text := 'select * from tabelle1 where name like "%'+ed_such.text+'%"';
anstatt " muss ' stehen. so funzts :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 2  1 2      

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