AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken EDataBaseError: Feld 'Memo' kann nicht verändert werden
Thema durchsuchen
Ansicht
Themen-Optionen

EDataBaseError: Feld 'Memo' kann nicht verändert werden

Ein Thema von Devil1925 · begonnen am 21. Nov 2016 · letzter Beitrag vom 22. Nov 2016
 
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: EDataBaseError: Feld 'Memo' kann nicht verändert werden

  Alt 22. Nov 2016, 07:25
Guten Morgen,
Probier mal folgendes aus

Daten.Q_MSSQL_Export.FieldByName(FieldName).AsString:= 'Hallo Welt!'
Teste ich gleich mal.

Hallo,

[DELPHI]
Ausserdem durchkäufst du "alle" Felder, obwohl es doch nur Id und Memo sind.

Reicht da nicht ein:

Delphi-Quellcode:
    while not Daten.Q_SQLITE_Export.Eof do
    begin
      Daten.Q_MSSQL_Export.Append;
      Daten.Q_MSSQL_Export.FieldByName('Id').Value := Daten.Q_SQLITE_Export.FieldByName('Id').Value;
      Daten.Q_MSSQL_Export.FieldByName('Memo').Value := Daten.Q_SQLITE_Export.FieldByName('Memo').Value;
      Daten.Q_MSSQL_Export.Post;

      Daten.Q_SQLITE_Export.Next;
    end;
Ich durchlaufe alle Felder, da es nicht nur ID und MEMO sind, das war jetzt nur eine Verkürzte version des SQL. ausserdem verwende ich diese Methode nicht nur für eine Tabelle sondern für ca 30, wobei das bei den ersten immer funktioniert.

Dann würde mich interessieren, ob der Fehler schon beim ersten Datensatz kommt oder erst irgendwo zwischendrin,
(vielleicht, wenn der Feldinhalt NULL ist?)
Ich bekomme die Fehlermeldung schon beim ersten Datensatz, bei welchem dieses Feld nicht leer ist.

Also prinzipiell finde ich das Vorgehen so ok, mache das auch regelmäßig, wenn von X nach Y kopiert werden soll, und die Routine funktioniert halt auch ohne Änderung, wenn die Tabellen noch dutzende von Spalten dazubekommen.

Es gibt nur einen Unterschied:

Benutzte immer, egal welcher Typ jetzt tatsächlich in den Tabellen vorkommt .AsString Das dürfte erst problematisch werden, wenn man Blobfelder mit irgendwelchem binären Inhalt (wie Grafiken ...) hat, auf diese Weise kopieren will.

Anstelle von .Value könnte eventuell auch .AsVariant funktionieren oder .AssignValue() Also statt   Daten.Q_MSSQL_Export.FieldByName(FieldName).Value := Daten.Q_SQLITE_Export.FieldByName(FieldName).Value; eventuell   Daten.Q_MSSQL_Export.FieldByName(FieldName).AssignValue(Daten.Q_SQLITE_Export.FieldByName(FieldName).Value);
Werde ich gleich mal testen.
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.

Geändert von Devil1925 (22. Nov 2016 um 08:15 Uhr)
  Mit Zitat antworten Zitat
 


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 10:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz