* * * *

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.
Maggio 02, 2024, 08:30:13 am

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

522 Visitatori, 1 Utente
 

Autore Topic: progetto web forum lazaruspascal.it  (Letto 184010 volte)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #75 il: Gennaio 27, 2013, 12:25:29 am »
ora come ora sto sbattendo la testa per salvare lo script compilato in pcode e poi ricaricarlo per eseguirlo senza la compilazione.
credevo fosse banale ma devo essermi impuntato da qualche parte: ricaricando il file in una stringa i vari #0 me la fanno risultare troncata...
mi sa tanto che a breve posto il lavoro così magari qualcuno mi può aiutare. deve esserci qualche differenza con delphi che non conosco ancora bene.

per l'immediato futuro ci sarebbe bisogno di un modulo dll per apache compilabile linux/win 32/64 bit
Imagination is more important than knowledge (A.Einstein)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #76 il: Gennaio 27, 2013, 11:20:56 am »
Scoglio superato, fortuna esiste il debugger :P

Il codice è incasinato ma funziona! Datemi un po' di tempo che lo sistemo e lo posto.

Un altro fronte sul quale ci si può muovere (oltre al modulo apache) potrebbe essere quello di capire come connettersi ad un db.
PascalScript offre anche un componente che permette di usare i dataset...

Premesso che altri modi di accesso li possiamo/dobbiamo implementare noi (es: via zeos o magari OPF) si tratta comunque di una risorsa che si *deve* poter sfruttare visto che è già pronta e soprattutto di sicuro cross platform.
Quindi, lato DB si possono sperimentare:
  • accesso via TPSImport_DB
  • accesso via zeos
  • accesso rapido in variant per interrogazioni semplici (es: una procedura che accetta SQL e restituisce un array variant a seconda di quello che ritorna la query)
« Ultima modifica: Gennaio 27, 2013, 11:23:24 am da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #77 il: Gennaio 27, 2013, 06:04:28 pm »
Ola, gli eventi sembrano procedere bene...non mi è ancora poi ben chiaro come funzionerà il discorso db. Insomma questo nostro progetto dovrà poi creare pagine html (con un nostro codice scripting) ma come è possibile renderlo un codice client-server senza usare le cgi?!
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #78 il: Gennaio 28, 2013, 12:00:01 am »
Intanto allego il progetto riorganizzato. E' un po' più pulito e chiaro sul funzionamento nonostante si tratta sempre di una prova.

Per l'accesso ai db pensavo di prevederlo in 2 modi:
  • Tramite codice "pascal script": come dicevo nel post precedente sembra ci sia possibilità di usare i dataset da dentro lo script. L'approccio è tipo cgi ma mentre il vero cgi presuppone la produzione di binari eseguibili (almeno nel caso fpc) con i limiti che sappiamo, in questo caso si tratta di script interpretati e l'unico binario che esiste è l'interprete PascalScript che risiede nel modulo apache (= è caricato 1 sola volta all'avvio di apache).
  • Tramite plugin: l'idea è quella di creare una definizione a cui bisogna attenersi per creare un plugin per l'accesso ai DB per il ns modulo apache. Ad esempio potrebbe essere una DLL che deve avere determinate procedure: "open connection", "execute query", "close connection", ecc....

Prossimamente pensavo di vedermi il funzionamento per l'accesso ai db usando direttamente del codice pascal script: se funziona intanto abbiamo qualcosa per partire.

Quello che mi preoccupa un po' di più è fare un modulo apache con tanto di thread safe per le ns procedure. Onestamente la mancanza dei WebModule di Delphi mi fa nascere qualche dubbio, spero che si riesca a venirne a capo. :)
Imagination is more important than knowledge (A.Einstein)

aesis

  • Newbie
  • *
  • Post: 23
  • Karma: +0/-0
Re:progetto web forum lazaruspascal.it
« Risposta #79 il: Gennaio 29, 2013, 10:33:44 am »
(divagazione: sto seguendo ma ha casa con 39 di febbre che non mi lascia in pace...ma provo e vi seguo....)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #80 il: Gennaio 29, 2013, 02:14:16 pm »
Nomore, ho provato l'ultimo allegato e devo dire che è molto promettente. Il prossimo passo?!
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #81 il: Gennaio 30, 2013, 08:51:10 am »
    @aesis
    non ti preoccupare, vai di tachipirina intanto ;)

    @xinyman
    direi accesso ai database

    ho visto un po' cosa offre pascalscript e credo che si possa usare la classe TDataset.
    Se qualcuno vuol fare qualche esperimento a partire dagli ultimi sorgenti che ho postato l'idea è quella di:
    • creare alla partenza di lpitr (va bene anche in implementation e finalization per il .Free) 1 connessione, 1 transazione e 1 dataset
    • creare un metodo (stesso modo di Out_Write) tipo: procedure ExecuteQuery(HostName, DbName, User, Password, SQL: string; ds: TDataset) da passare a pascal script
    • fare in modo che nello script si possa dichiarare: var d: TDataset

l'idea è quella di poter scrivere nello script qualcosa tipo:
Codice: [Seleziona]
ExecuteQuery('127.0.0.1', 'PROVE_LPITR.FDB', 'SYSDBA', 'masterkey', 'select * from tablename', d)
e, una volta eseguita la query:
Codice: [Seleziona]
Out_Write('<br>' + IntToStr(d.RecordCount);
    e poi magari fare la scansione del dataset per visualizzare tutti i campi in una tabella html

    io sto provando con firebird ma sono da provare tutti i database che possiamo quindi... chi si sente abbastanza masochista.... ;)
« Ultima modifica: Gennaio 30, 2013, 08:57:55 am da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #82 il: Febbraio 01, 2013, 02:45:53 pm »
appena posso provo a fare qualcosa...sono super incasinato e non so dare previsioni
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #83 il: Febbraio 01, 2013, 03:30:56 pm »
incasinato anche io
però ho fatto funzionare firebird!  8)

un po' di tempo che rendo i sorgenti decenti e poi posto :)
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #84 il: Febbraio 01, 2013, 09:27:11 pm »
oooooook
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #85 il: Febbraio 02, 2013, 12:22:26 pm »
finalmente sono riuscito a dare un'organizzata al tutto

what's new:
  • c'è una cartella sql con 2 script per creare e popolare un db firebird 2.5
  • ho preparato lo script03 che accede al database e mostra il contenuto dell'unica tabella
  • nella cartella webpas c'è il file di output che si ottiene con: lpitr -s webpas/script03.pas >webpas/out.html

Notare che i parametri d'accesso al db nonché il dataset risultante sono tutti definiti nello script :)

ora, lo script l'ho scritto a mano alla "cgi": bisognerebbe pensare ad una sintassi alla "psp" per poter poi generare in automatico script03.pas.

di lavoro ce n'è molto ma la strada sembra promettente :)

per chi può sperimentare le strade sono molte:
  • sperimentare contenuti avanzati di pascal script (es: include, garbage collector (da lpitr), impostare da lpitr variabili dichiarate nello script, ecc...)
  • provare altri db
  • ideare/sperimentare la sintassi "pspage"
  • modulo apache
  • prove per ria tramite ExtJs online gui designer (es: costruire una GUI e vedere come si può popolarla)
« Ultima modifica: Febbraio 02, 2013, 12:25:08 pm da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #86 il: Febbraio 02, 2013, 05:04:02 pm »
Ciao Nomore, ho provato e sembra funzionare. Una cosa sola, prova a sostituire il TIBConnection con una ZConnection, così ottieni la possibilità di passare da un dbms all'altro.
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #87 il: Febbraio 03, 2013, 11:31:30 am »
Ciao Nomore, ho provato e sembra funzionare. Una cosa sola, prova a sostituire il TIBConnection con una ZConnection, così ottieni la possibilità di passare da un dbms all'altro.

provare con
./lpitr -s webpas/script04.pas >out4.html

attualmente il protocollo (x fb 2.5) è fisso nel sorgente, se fate prove con altri db, potete anche prevederlo come parametro in Z_CreateDatasetByQuery di modo da chiamarlo direttamente da script.

Notare che la differenza tra script03.pas e script04.pas è solo nella chiamata alla funzione Z_CreateDatasetByQuery :)

Se poi qualcuno vuole si può fare una funzione;
Codice: [Seleziona]
function CreateDatasetByQuery(Engine, protocol: string; HostName, DbName, User, Pass, Sql: string): TDataset

per permettere a chi fa lo script di scrivere a scelta:
Codice: [Seleziona]
DS := CreateDatasetByQuery('zeos', 'firebirdd2.5', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

oppure

Codice: [Seleziona]
DS := CreateDatasetByQuery('IbConnection', '', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

oppure

Codice: [Seleziona]
DS := CreateDatasetByQuery('altro tipo', 'protocollo', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

così da script si sceglie anche l'engine per l'accesso ai dati cambiando 1 o 2 parametri ma il sorgente rimane immutato.
« Ultima modifica: Febbraio 03, 2013, 11:33:23 am da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:progetto web forum lazaruspascal.it
« Risposta #88 il: Febbraio 04, 2013, 03:26:25 pm »
Nell'ultima versione allegata non hai messo la cartella sql, se qualcuno vuole provare fatica. Inoltre pensavo, sarebbe cosa buona e giusta integrare fin da subito un parser matematico nativo, se non sbaglio microgeos2000 tempo fa ne aveva postato uno suo. Se lui fosse daccordo potremmo inserirlo subito. Potrebbe tornare davvero molto comodo...
Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:progetto web forum lazaruspascal.it
« Risposta #89 il: Febbraio 07, 2013, 08:48:48 am »
pardon, questo m'era sfuggito :P

anche se non sto postando non vuol dire che sto fermo ;) sto facendo prove con apache: è un po' dura ma non sono lontanissimo.
in pratica sono riuscito a compilare un modulo apache e a farlo girare ma non con WebModule. purtroppo in giro per la rete ci sono un sacco di esempi che per una ragione o per l'altra non vanno...
vorrei farlo con il WebModule perchè partirei un paio di gradini più in alto e un paio di gradini, in questo caso, fanno molto :D
Imagination is more important than knowledge (A.Einstein)

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18784
  • Topic in totale: 2236
  • Online Today: 543
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 1
Guests: 522
Total: 523

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.