* * * *

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 16, 2024, 06:29:22 pm

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

82 Visitatori, 0 Utenti

Autore Topic: Allineare tabelle  (Letto 23061 volte)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #15 il: Febbraio 19, 2014, 09:45:43 pm »
Con FlameRobin ho provato così:

Codice: [Seleziona]
SET TERM ^ ;

CREATE TRIGGER MODIFICA_INSERIMENTO_LISTINI_PV for LISTINO_PREZZI_PV
Active
After insert or update
Position 0
AS
BEGIN
     -- ogni volta che inserisco o
     -- modifico un record vado ad
     -- impostare il campo RECORD_EDIT_INSERT
     -- a 1 in modo che nel trasferire i dati
     -- ai punti vendita io trasferisco solo le
     -- righe essenziali
     -- la cancellazione è bloccata dal programma
     -- semplicemente rendo i record non continuativi
     -- e con la data di inizio vendita e di fine vendita
     -- impostata a 1-1-1900

     new.RECORD_EDIT_INSERT=1;

END^

SET TERM ; ^
Ma va in loop il programma, si oscura la finestra di flamerobin e non fa nulla. Idee? Inoltre ipotizziamo che ci riesco, come posso poi settare il valore del campo RECORD_EDIT_INSERT a 0 senza che questo cambiamento inneschi nuovamente il trigger e quindi lo riporti automaticamente a 1?
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Allineare tabelle
« Risposta #16 il: Febbraio 20, 2014, 09:29:13 am »
Qualche controllo del tipo:
Codice: [Seleziona]
if old.record_edit_insert is null
 new.RECORD_EDIT_INSERT
L'ipotesi è che scatta l'insert, poi l'update. O fanne due.
Uno solo un trigger per le insert e uno solo per gli update ;)

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Allineare tabelle
« Risposta #17 il: Febbraio 20, 2014, 11:15:36 am »
Inoltre ipotizziamo che ci riesco, come posso poi settare il valore del campo RECORD_EDIT_INSERT a 0 senza che questo cambiamento inneschi nuovamente il trigger e quindi lo riporti automaticamente a 1?

c'è anche una mia risposta un paio di post fa
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #18 il: Febbraio 20, 2014, 04:05:22 pm »
Si vista!

Solo che ancora non riesco a capire perchè non mi fa salvare il trigger con la commit. Uffaaaaaaaaaaaa
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #19 il: Febbraio 20, 2014, 04:12:22 pm »
Sono un coglionazzo. Non posso modificare nell'AFTER devo usare necessariamente il BEFORE.
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Allineare tabelle
« Risposta #20 il: Febbraio 20, 2014, 04:36:02 pm »
Basta aver trovato dove sbagliavi.
Il resto è codice :D

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #21 il: Febbraio 20, 2014, 05:16:25 pm »
Si però fa girare parecchio le pelotas lo stesso  ;)
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #22 il: Febbraio 20, 2014, 06:44:03 pm »
Qualcuno conosce la sintassi in firebird che disabilita e riabilita gli indici in una tabella?
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Allineare tabelle
« Risposta #23 il: Febbraio 21, 2014, 09:15:07 am »
Prova qui a capirci qualche cosa :D

http://www.firebirdfaq.org/faq110/

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #24 il: Febbraio 21, 2014, 04:37:04 pm »
Ho provato a cancellare l'indice incirminato che mi rende lento l'inserimento. Risultato, non velocizza nulla. Inizio a pensare che firebird su ubuntu abbia qualche difficoltà nell'inserimento di molte righe. Nel mio caso specifico solo 1260 righe.

Inizio: 16:33:12
Fine: 16:34:49

Non ha senso...consigli?
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Allineare tabelle
« Risposta #25 il: Febbraio 21, 2014, 06:44:55 pm »
cosa mandi al server, uno script o fai con i ClientDataset?

se è uno script e lo script lo dai in pasto a famerobin quanto ci mette?
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #26 il: Febbraio 21, 2014, 07:05:19 pm »
al momento un dataset. con una query leggo le righe dal server e poi le scrivo una x una nella tabella in locale. con le insert.
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Allineare tabelle
« Risposta #27 il: Febbraio 22, 2014, 11:10:06 am »
ok per la query per leggere i dati (se non erro le query readonly sono anche più veloci).

quando devi fare un inserimento massivo non passare per il dataset se poi il tempo impiegato è un problema.
Elimina il dataset per le insert, leggi con la query quello che ti serve e poi inserisci in una TStringList tutte le insert di cui hai bisogno, in un unico script.
Una volta che hai preparato lo script dallo in pasto al server in un colpo solo, vedrai che i tempi saranno diversi e di molto.
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #28 il: Febbraio 22, 2014, 01:12:58 pm »
ok per la query per leggere i dati (se non erro le query readonly sono anche più veloci).

quando devi fare un inserimento massivo non passare per il dataset se poi il tempo impiegato è un problema.
Elimina il dataset per le insert, leggi con la query quello che ti serve e poi inserisci in una TStringList tutte le insert di cui hai bisogno, in un unico script.
Una volta che hai preparato lo script dallo in pasto al server in un colpo solo, vedrai che i tempi saranno diversi e di molto.

grazie del consiglio. provero' e faro' sapere
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Allineare tabelle
« Risposta #29 il: Febbraio 22, 2014, 02:38:17 pm »
Nomore, per dare in pasto al server lo script creato come faccio? Che suggerisci?

Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18769
  • Topic in totale: 2232
  • Online Today: 83
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 82
Total: 82

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.