vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Select auf MEMO 
Autor: icolor
Datum: 27.04.12 07:56

Guten Morgen,

wir legen in unserer Datenbank exportiere Sätze in einer Tabelle ab. Hier allerdings in einem MEMO Feld, wobei alle Felder hintereinander gesetzt werden.

Nun möchte ich bei einem weiteren Export gerne prüfen, ob der Satz bereits exportiert wurde. Ein direkter Zugriff mit Vergleich auf das MEMO Feld funktioniert nicht. Ich habe bereits so was ausprobiert:

SELECT * FROM TAB1
WHERE (DAT_LOSTEILE.FELD1 + DAT_LOSTEILE.FELD2 + DAT_LOSTEILE.FELD3) NOT IN 
(SELECT LTRIM(RTRIM(STR(TAB2.DATENSATZ))) FROM TAB2 WHERE TAB2.KZ = 'XXX')
Ich versuche hier das MEMO Feld in einen String zu wandeln und zu trimmen. Dabei kommt allerdings der Fehler:
[Microsoft][SQL Server Native Client 10.0][SQL Server]Operandentypkollision: text ist inkompatibel mit float

Kann mir jemand den korrekten Weg zur Umwandlung in VB6 aufzeigen ???

Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: icolor
Datum: 27.04.12 08:37

Muss dazu sagen, die Tabellen auf die ich gehe sind MS Access 97.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: wb-soft
Datum: 27.04.12 08:45

Hi!

SQL Server kennt keinen Feldtyp Memo. Den hast du wohl von der Jet-Engine.

In älteren Versionen (vor 2005) war die Entsprechung der Typ Text. Dabei ist der Vergleichoperator "=" nicht zulässig. Gleiches Ergebnis erreicht man mit dem Oeprator "Like" unter Verzicht auf Wildcards.

Aktuelle Versionen bieten den Typ Varchar(max). Damit ist alles einfacher.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: icolor
Datum: 27.04.12 08:56

Und wie soll mich jetzt diese Antwort weiter bringen?

Ich mach einen Vergleich eines Feldinhaltes (MEMO) mit einem Selectspruch. Wie soll ich da mit einem LIKE weiter kommen? Wenn ich das versuche auf LIKE umzustellen kommt der Fehler:

37000: [Microsoft][SQL Server Native Client 10.0][SQL Server]Die Datentypen text, ntext und image sind in dieser Unterabfrage oder in diesem Aggregatausdruck ungültig.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: Reinhard39
Datum: 27.04.12 11:55

Hallo!


SELECT * FROM TAB1
WHERE (DAT_LOSTEILE.FELD1 + DAT_LOSTEILE.FELD2 + DAT_LOSTEILE.FELD3) NOT IN 
(SELECT LTRIM(RTRIM(STR(TAB2.DATENSATZ))) FROM TAB2 WHERE TAB2.KZ = 'XXX')
Deine DB versteht dich nicht und muß raten. + und & sind NICHT dasselbe!

+: Addieren
&: Strings verketten

Du willst offenbar Strings verketten. In VB bitte dabei den &-Operator verwenden.
In deinem Fall allerdings soll die DB Strings verketten, das geht mWn nur mit SQL-CONCAT() (Concatenate), also:

CONCAT(CONCAT(DAT_LOSTEILE.FELD1, DAT_LOSTEILE.FELD2), DAT_LOSTEILE.FELD3).

Kann sein, daß gewisse RDMS den +-Operator für Strings erlauben; ich würde es aber so NIE anwenden, man handelt sich Probleme ein.

Ich erlaube mir aber anzumerken, daß das ein, gelinde gesagt, krudes Design ist. Warum nicht eine Bool-Spalte in der Tabelle mit Namen "ExportOK" oder so, die beim Export auf "True" gesetzt wird? Beim erneuten Export einfach alle selektieren, bei denen ExportOK noch auf "false" steht.

Gr??e,
Reinhard

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: wb-soft
Datum: 28.04.12 06:45

Hi!

Eine eigene Spalte für den Export wäre eine saubere Lösung, sofern die die Information ausreichend ist.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Select auf MEMO 
Autor: wb-soft
Datum: 28.04.12 21:17

Hi!

Zitat:

Und wie soll mich jetzt diese Antwort weiter bringen?


Dein Betreff lautet: "Select auf MEMO". Genau dazu habe ich geantwortet.

Dein Posting bezüglich Access 97 hat sich mit meiner Antwort überschnitten, ich habe es also vorher nicht gesehen.

Ausgehend von der Annahme, daß es um SQL Server geht, habe ich auf die Verwendung von "Like" hingewiesen. Möglicherweise funktioniert das auch mit der Jet-Engine.

Dabei ist mir nicht aufgefallen, daß du eventuell Rechenoperationen mit nicht numerischen Feldern versuchst. Ich kenne ja auch deine DB nicht.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel