Thema: Delphi Locate findet nix

Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.431 Beiträge
 
Delphi 7 Professional
 
#14

AW: Locate findet nix

  Alt 20. Mär 2019, 21:42
Ich glaube jetzt nicht, dass die Funktion da extra Leerzeichen eingefügt hat ..
Das sollte keine Glaubensfrage, sondern eine Wissensfrage sein.

Gerade bei CSV und Bulk-Insert kann es passieren, dass Daten mit fester Länge in eine Datenbank eingefügt werden, Sprich: Zeichenfolgen werden mit Leerzeichen bis zur Maximallänge der entsprechenden Spalte aufgefüllt.

Nehmen wir an, die Spalte IP sei vom Typ VarChar(15) für z. B. die IP 111.111.111.111. Wenn nun in dieser Spalte die IP 1.2.3.4 steht, werden 8 Leerzeichen angefügt.

Führe bitte mal (sinngemäß) folgendes SQL aus:select * from tabelle where trim(ip) <> ip Da sollte, wenn keine Leerzeichen angefügt wurden, eine leere Ergebnismenge rauskomen, wenn nicht, weißt Du, dass beim Bulk-Insert Leerzeichen an die Daten angehängt wurden.

Locate wird von mir oft benutzt, das von Dir beschriebene Problem ist da bisher noch nicht aufgetreten und ich kann es auch nicht nachvollziehen.

Zeig' und doch bitte mal alle SQLs, die Du bisher ausprobiert hast und deren Ergebnisse.

T.Locate('IP', '1.2.3', [lopart.. ist irgendwie gut und schön, aber wie sieht der Quelltext dazu aus. Also z. B. das Selectstatement, das T-wasauchimmerdasgenauist zugewiesen wurde.

Kannst Du uns bitte mal den Quelltext von einem Beispielprogramm zur Verfügung stellen, in dem der Fehler reproduzierbar ist?
Oder mal 'nen kurzen Ausschnitt aus des CSV (soweit möglich oder anonymisierte Beispieldaten), damit wir etwas genauer sehen können, worüber hier gerade geredet wird.
  Mit Zitat antworten Zitat