AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kann Memofeld keinen leeren String zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

Kann Memofeld keinen leeren String zuweisen

Ein Thema von iGoA · begonnen am 12. Okt 2009 · letzter Beitrag vom 26. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#1

Kann Memofeld keinen leeren String zuweisen

  Alt 12. Okt 2009, 15:12
Datenbank: MSSQL • Zugriff über: ADO
Moin!

Ich habe ein ADOTable, ein Datasource und ein DBMemo. Mein Problem ist nun folgendes:
Ich kann jeden beliebigen Wert in das Memo schreiben und er wird auch in der DB gespeichert.
Wenn ich aber versuche das Memo komplett zu leeren, wird beim Posten stattdessen der alte Text wieder eingesetzt/beibehalten.
Ich habe auch schon versucht, dem Datenbankfeld direkt einen leeren String zuzuweisen (á la ADOTable1.fieldByName('bla').asString := ''). Dies wird ebenfalls nicht angenommen.
Ich habe mit einem MSSQL-Server, sowie mit einer MSACCESS-db probiert.
Kennt jemand dieses Problem? Im Netz habe nichts gefunden.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 12. Okt 2009, 15:52
Ich kenne mich mit dem MSSQL Server nicht aus, aber vielleicht
musst du anstatt einen Leer-String dem Feld "NULL" zuweisen.

UPDATE table SET Feld=NULL WHERE ID=5;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 12. Okt 2009, 17:38
Hallo iGoa,

Meine Erfahrungen mit dem SQLServer liegen etwas weit zurück aber soweit ich mich erinnern kann sollte ein Leerzeichen funktionieren.

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 12. Okt 2009, 20:50
Ein Leerstring sollte eigentlich auch funktionieren IIRC. Allerdings darf das Feld dazu nicht als NOT NULL definiert sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#5

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 13. Okt 2009, 10:11
Danke schonmal für die Antworten.
Das Problem tritt nicht nur beim SQLServer auf, sondern auch mit ner ACCESS-mdb. Das Feld kann den Wert NULL haben. Mit SQL könnte ich den Wert bestimmt auf NULL oder auf einen leeren String setzen, aber dann breche ich ja komplett mit dem Konzept, ein Datasource, Table und datensensitive Steuerelemente zu benutzen. Dann müsste ich bei jedem Datensatzwechsel irgendwelche Standard-Memos manuell füllen und beim Posten manuell in die DB schreiben per SQL. Das kann doch nicht der Sinn der Sache sein.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 13. Okt 2009, 12:33
Schon mal folgendes versucht?

ADOTable1.fieldByName('bla').assign(nil); Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 13. Okt 2009, 20:00
Wenn alle Stricke reißen, dann löscht die Methode TField.Clear() zuverlässig jedes Datenbankfeld, solange NULL-Werte zulässig sind.

Grüße vom marabu
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 13. Okt 2009, 20:04
[OT]Welcome back Achim [/OT]
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#9

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 13. Okt 2009, 20:47
scheint ja eine verkorkste ADO-Version zu sein. Versuche doch mal ein " " Leerzeichen zuzuweisen... // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#10

Re: Kann Memofeld keinen leeren String zuweisen

  Alt 14. Okt 2009, 10:52
Leerzeichen klappt wie jeder andere Wert. Nur nicht nichts.

Mit dem Assign(nil) bzw. clear könnte klappen, aber das Problem ist dann, zu welchem Zeitpunkt ich das aufrufen soll. Es ist nämlich wirklich so, dass eine Zuweisung von '' oder null gar nicht erst das Feld erreicht. Wenn ich zum Beispiel folgendes tue:
Delphi-Quellcode:
tableAmbientMedia.fieldByName('MEINMEMOFELD').asString := '';
showMessage( tableAmbientMedia.fieldByName('MEINMEMOFELD').asString);
Dann erscheint in der Meldung schon wieder der alte Wert!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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