* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 18, 2024, 05:06:59 pm

Inserisci il nome utente, la password e la durata della sessione.

348 Visitatori, 1 Utente
 

Autore Topic: Copia da memo in memo incompleta  (Letto 1555 volte)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Copia da memo in memo incompleta
« il: Marzo 31, 2021, 07:42:32 pm »
Lazarus 2.0.6x64 - Zeos 7.1.4-stable  - SQLite3
Buonasera,
oggi ho scoperto che la copia del contenuto di un campo memo da una tabella in un'altro campo memo di altra tabella dello stesso database non avviene completamente, il secondo campo memo è circa la metà del primo.
In SQLite sono entrambi - TEXT - e in FPC entrambi - ftMemo -
per prova faccio questo:
Codice: [Seleziona]
mcod:='28.A05.D05.005'; // ArticoliCODICE.Text;
if not TotArti.Locate('CODICE', mcod, []) then informa('codice non trovato') else
    if Articoli.Locate('CODICE', mcod, []) then
        begin
            Totarti.Edit;
            Totarti.FieldValues['annotazion']:=Articoli.FieldValues['annotazion'];
             Totarti.Post;
         end;

ho provato molti modi ma non ho trovato la soluzione, il testo copiato è sempre circa la metà di quello originale.

Anche copiando manualmente l'intero testo nel secondo memo il risultato non cambia, ne viene memorizzato solo la metà.

Cosa mai potrà essere?
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Copia da memo in memo incompleta
« Risposta #1 il: Marzo 31, 2021, 09:41:31 pm »
penso che dovresti provare con gli stream
Imagination is more important than knowledge (A.Einstein)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #2 il: Aprile 01, 2021, 03:10:51 pm »
nomorelogic, e come?
« Ultima modifica: Aprile 01, 2021, 03:29:05 pm da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Copia da memo in memo incompleta
« Risposta #3 il: Aprile 01, 2021, 03:55:24 pm »
Prova qualcosa tipo:

Codice: [Seleziona]
var
  stream: TMemoryStream;
...

  mcod := '28.A05.D05.005'; // ArticoliCODICE.Text;
  if not TotArti.Locate('CODICE', mcod, []) then
     informa('codice non trovato')
  else
  if Articoli.Locate('CODICE', mcod, []) then
     begin
       stream := TMemorySTream.Create;
       try
         BlobField(Articoli.FieldByName('annotazion')).SaveToStream(stream);
         stream.Position := 0;
         Totarti.Edit;
         BlobField(Totarti.FieldByName('annotazion')).LoadFromStream(stream);
         // Totarti.FieldValues['annotazion'] := Articoli.FieldValues['annotazion'];
         Totarti.Post;
       finally
         FreeAndNil(stream);
       end;
     end;





Edit:
commentata istruzione da sostituire
« Ultima modifica: Aprile 01, 2021, 04:06:05 pm da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #4 il: Aprile 01, 2021, 05:22:31 pm »
Error: Identifier not found "BlobField"
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #5 il: Aprile 02, 2021, 01:21:51 am »
ho trovato e capito che il campo memo viene completamente riempito con:
Codice: [Seleziona]
Totarti.FieldValues['annotazion'] := Articoli.FieldValues['annotazion'];

o con:

Codice: [Seleziona]
TotartiAnnotazion.Text:=ArticoliAnnotazion.AsString;

ma poi viene visualizzato in misura ridotta (circa la metà) sia a schermo che in stampa
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Copia da memo in memo incompleta
« Risposta #6 il: Aprile 02, 2021, 09:04:37 am »
Error: Identifier not found "BlobField"

scusa era TBlobField (si trova nella unit DB)
non avevo compilato
Imagination is more important than knowledge (A.Einstein)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #7 il: Aprile 02, 2021, 10:27:47 am »
nomorelogic, grazie ma in esecuzione mi da errore: invalid type cast
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Copia da memo in memo incompleta
« Risposta #8 il: Aprile 02, 2021, 11:21:19 am »
ho trovato e capito che il campo memo viene completamente riempito con:
Codice: [Seleziona]
Totarti.FieldValues['annotazion'] := Articoli.FieldValues['annotazion'];

o con:

Codice: [Seleziona]
TotartiAnnotazion.Text:=ArticoliAnnotazion.AsString;

ma poi viene visualizzato in misura ridotta (circa la metà) sia a schermo che in stampa


Domanda stupida: se usi lazreport hai provato ad allargare il rettangolo in cui fai visualizzare quel dato?
Ieri è passato, domani è futuro, oggi è un dono...

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #9 il: Aprile 02, 2021, 11:50:19 am »
xinyiman,
la cosa strana è che in entrambe le tabelle (articoli e totarti) il campo annotazioni in sqlite3 è TEXT ed in Lazarus ftMemo
con tabella articoli -in dbmemo- la descrizione è completa
mentre con tabella totarti -sempre in dbmemo- la visualizzazione della descrizione è tagliata.


Ho provato a fare una nuova applicazione collegando lo stesso database e tutto funziona perfettamente, le due tabelle hanno gli stessi valori e posso copiare i dati da una all'altra senza perdere valori,


quindi deduco che sia un problema relativo al mio programma, a qualche accidenti di configurazione da qualche parte che mi modifica le caratteristiche della tabella Totarti.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #10 il: Aprile 02, 2021, 12:00:25 pm »
anche con Lazreport articoli.annotazion viene stampata per intero mentre totarti.annotazion viene stampata troncata
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #11 il: Aprile 02, 2021, 05:11:19 pm »
quello che ho scoperto
le due tabelle sono in un Modulo Dati
ho copiato Totarti nella Form principale, cambiato i collegamenti, e tutto funziona anche la stampa con Lazreport,
quindi il problema è nel Modulo Dati, infatti inserendo un'altra ZTable  questa non viene riconosciuta come parte integrante del Modulo Dati e mi segnala errore.
Qualche soluzione??
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Copia da memo in memo incompleta
« Risposta #12 il: Aprile 04, 2021, 09:34:19 pm »
quello che ho scoperto
le due tabelle sono in un Modulo Dati
ho copiato Totarti nella Form principale, cambiato i collegamenti, e tutto funziona anche la stampa con Lazreport,
quindi il problema è nel Modulo Dati, infatti inserendo un'altra ZTable  questa non viene riconosciuta come parte integrante del Modulo Dati e mi segnala errore.
Qualche soluzione??

Lo hai segnalato alla community internazionale?
Ieri è passato, domani è futuro, oggi è un dono...

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Copia da memo in memo incompleta
« Risposta #13 il: Aprile 09, 2021, 02:44:28 am »
ho risolto in modo anomalo.
ho creato un nuovo datamodulo chiamato DataProgetto ed ho copiato, copia ed incolla, tutto il contenuto di Dataproge, ho cambiato tutti i riferimenti nel programma e nei report ed ho risolto. Provando a rinominare il nuovo modulo dati col nome originale il problema si ripresenta.
Sembra strano ma sembrerebbe che Dataproge non accetti modifice alle Ztabelle perchè tempo fa ho cambiato il campo 'annotazion' della tabella Totarti (sqlite) da 'varchar' a 'text' e modificato il campo anche su Lazarus inserendo 'ftMemo'. Queste modifiche  vengono visualizzate ma poi non vengono elaborate, come se il datamodule prendesse i dati da un file memorizzato da qualche altra parte e non in quello di progetto.

Xinyiman,non ho ancora segnalato il problema alla community internazionale, se cortesemente mi dai i riferimenti lo faccio.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Copia da memo in memo incompleta
« Risposta #14 il: Aprile 09, 2021, 08:19:24 am »
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18770
  • Topic in totale: 2232
  • Online Today: 364
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 1
Guests: 348
Total: 349

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.