-
Gracie, Danke!
Ja genau so etwas habe ich doch gesucht!
Ich hatte wohl schon versucht mit der Uppercase Funktion aus VisualBasic geliebäugelt, aber die hätte mir nicht viel gebracht.
Wer von Euch kann mir denn noch auf die schnelle sagen wo ich eine SQL-Referenz für die iSeries herbekomme. Ich möchte nicht unbedingt unsere 324 Cd´s durchsuchen müssen! ;-)
Ein Redbook oder so?
Vielen Dank für Eure Hilfe!
Habe aber noch eine Frage:
Wer von Euch kennt sich denn ganz gut mit Access aus?
Bekomme seitdem ich MS SQL Server als Backend in Access nutze keine ODBC Verbindung mehr zur iSeries wenn ich eine Tabelle verknüpfen will.
Danke!
René
-
 Zitat von reraru
Ja genau so etwas habe ich doch gesucht!
Ich hatte wohl schon versucht mit der Uppercase Funktion aus VisualBasic geliebäugelt, aber die hätte mir nicht viel gebracht.
Wer von Euch kann mir denn noch auf die schnelle sagen wo ich eine SQL-Referenz für die iSeries herbekomme. Ich möchte nicht unbedingt unsere 324 Cd´s durchsuchen müssen! ;-)
Ein Redbook oder so?
Vielen Dank für Eure Hilfe!
Habe aber noch eine Frage:
Wer von Euch kennt sich denn ganz gut mit Access aus?
Bekomme seitdem ich MS SQL Server als Backend in Access nutze keine ODBC Verbindung mehr zur iSeries wenn ich eine Tabelle verknüpfen will.
Danke!
René
Hallo René,
1. Die iSeries Reference findest Du unter folgendem Link:SQL Reference
2. Natürlich kann man auch auf der iSeries die Sortier-Reihenfolge einstellen.
Wenn Du im interaktiven SQL bist (STRSQL) kannst Du über die F13-Taste, Sitzungs-Attribute ändern auf der 2.Seite die Sortier-Reihenfolge ändern. Der Unterlassungs-Wert steht auf *HEX.
*LANGIDUNQ sortiert unabhängig von Gross-/Kleinschreibung, erkennt jedoch in einer Where-Bedingung 'Müller' und 'müLLER' nicht als identisch.
*LANGIDSHR sortiert unabhängig von Gross-/Kleinschreibung und erkennt in einer Where-Bedingung 'Müller'
und 'müLLER' als identisch.
(weitere Informationen auch in der iNN - eNews 01.12.2003
In embedded SQL kann die Sortierreihenfolge im Compile-Command festgelegt werden.
In embedded SQL, Stored Procedures u.a. kann die Sortierreihen folge über eine SET OPTION-Anweisung festgelegt werden.
Birgitta
-
Wichtig ist noch folgendes:
wenn du mit
MyName = '%Müller%';
und
select ... where ... upper(KDNAME) like upper(:MyName) ...
suchst, kommt auch nicht unbedingt das gewünschte Ergebnis, da die Variable MyName noch Leerzeichen am Ende enthält, die auf jeden Fall mitgesucht wird !
Ergänze daher:
select ... where ... upper(KDNAME) like upper(trim(:MyName)) ...
*LANGIDSHR gibt dann Probleme, wenn es keine LF mit diesem Attribut gibt. Ich habe das mal ausprobiert und die Performance ging drastisch in den Keller da auf jeden Fall erst mal ein temporärer Index aufgebaut wurde.
Also in solchen Fällen besser eine LF mit diesem Attribut erstellen und den SQL sogar auf diese LF loslassen.
-
Hallo,
generell brauchen solche Queries einen statischen Index, wenns brummen soll!!!
Beim CREATE INDEX wird die Sortierfolge die aktuell gültig ist, verwendet und in dem Index verdrahtet und nur wenn der mit dem zur Laufzeit passt, wird er verwendet. Zusätzlich ist noch mit zu beachten, dass der (sogenannte) Query Optimizer bei der Verwendung von Feldfunktionen eher als Query Pessimizer fungiert.
mfg
Dieter Bender
 Zitat von Fuerchau
Wichtig ist noch folgendes:
wenn du mit
MyName = '%Müller%';
und
select ... where ... upper(KDNAME) like upper(:MyName) ...
suchst, kommt auch nicht unbedingt das gewünschte Ergebnis, da die Variable MyName noch Leerzeichen am Ende enthält, die auf jeden Fall mitgesucht wird !
Ergänze daher:
select ... where ... upper(KDNAME) like upper(trim(:MyName)) ...
*LANGIDSHR gibt dann Probleme, wenn es keine LF mit diesem Attribut gibt. Ich habe das mal ausprobiert und die Performance ging drastisch in den Keller da auf jeden Fall erst mal ein temporärer Index aufgebaut wurde.
Also in solchen Fällen besser eine LF mit diesem Attribut erstellen und den SQL sogar auf diese LF loslassen.
-
OK
Vielen Dank Euch beiden!
Ich wollte gerade mal eben die SQL Referenz auf den Drucker jagen. Tse! 1100 Seiten? Das macht bei Duplex immerhin noch 550. Ok! Das lasse ich lieber! ; - )
@ Birgitta:
Ich danke Dir für den LINK! Den hätte ich sonst nie auf den IBM Websites gefunden! No Way!
Was die Änderung der Sortierfolge angeht: Das werde ich mir mal anschauen!
@ BenderD:
OK!! ;-)
@ Fuerchau:
Ich habe die Trim Funktion mal ergänzt. Die Frage währe noch, ob folgendes nicht sinnvoll ist:
select ... where ... upper(trim(KDNAME)) like upper(trim(:MyName))
Bei Deiner Variante werden doch nur bei Variable die Leerzeichen gekürzt, oder? Nicht aber beim Feldwert.
Was ist hier sinnvoll?
Gruß René
-
Da der LIKE ja einem SCAN nahe kommt, ist ein TRIM des Suchfeldes nicht erforderlich. Für eine Zugriffsoptimierung ist das sogar NICHT ratsam.
-
OK!
Hi Fuerchau!
Ich danke!!!
Gruß René
Similar Threads
-
By olafu in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-10-06, 08:13
-
By Unwissender in forum NEWSboard Windows
Antworten: 9
Letzter Beitrag: 03-07-06, 15:01
-
By Trix in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 26-10-05, 12:30
-
By rcauchy in forum NEWSboard Windows
Antworten: 1
Letzter Beitrag: 23-06-05, 13:28
-
By Rico in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 21-03-05, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks