Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Leere Felder können nicht kopiert werden (https://www.delphipraxis.net/108893-leere-felder-koennen-nicht-kopiert-werden.html)

Smiley 20. Feb 2008 21:01

Datenbank: Access • Zugriff über: ADO

Leere Felder können nicht kopiert werden
 
Ich möchte Daten von einer Accessdatenbank in eine andere mit ADO kopieren.
Die beiden Tabellen haben unterschiedliche Feldnamen, sodass ich die Daten Feld für Feld kopiere.
Ist jedoch das Feld der Quell-DB leer (String) dann bekomme ich den Fehler:
EDatabaseError mit der Meldung Feld Kataloge.Feldname darf keine Zeichenfolge der Länge Null zugewiesen werden,
nachdem ich Post ausführe.
Muss ich nun vor jeder Zuweisungszeile eine Abfrage setzen ob der zu lesende Wert null ist oder gibt es da eine bessere Methode.

Ich benutze zu Zeit folgenden Befehl:
DM.QKat.FieldbyName('Verwaltung').AsString := DM.QWork.FieldByName('Verw').AsString;

mkinzler 20. Feb 2008 21:04

Re: Leere Felder können nicht kopiert werden
 
Überprüfe vorher auf nicht NULL und kopiere nur dann.

Smiley 20. Feb 2008 21:12

Re: Leere Felder können nicht kopiert werden
 
Das hatte ich vor zu tun, ich hatte jedoch gehofft, es gibt einen anderen Weg um dieses Problem zu umgehen.

Wie ist das dann bei Integer,Float,Datum Feldern, muss ich die auch alle prüfen ?

mkinzler 20. Feb 2008 21:13

Re: Leere Felder können nicht kopiert werden
 
Oder du verwendest .Value

Smiley 20. Feb 2008 21:27

Re: Leere Felder können nicht kopiert werden
 
soll das .value im Quell oder Zielbereich verwendet werden ?

setze doch mal dieses Beispiel um:
DM.QKat.FieldbyName('Verwaltung').AsString := DM.QWork.FieldByName('Verw').AsString;

Vielen Dank für die Hilfe

mkinzler 20. Feb 2008 21:28

Re: Leere Felder können nicht kopiert werden
 
Delphi-Quellcode:
DM.QKat.FieldbyName('Verwaltung').Value := DM.QWork.FieldByName('Verw').Value;

Smiley 20. Feb 2008 21:59

Re: Leere Felder können nicht kopiert werden
 
Ich habe es damit getestet und es funktioniert.

Danke für die schnelle Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 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