+ Rispondi al Thread
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 17 su 17

Discussione: SQL lite FireDAC

  1. #11
    L'avatar di _alka_
    _alka_ ora è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,177
    Una soluzione che ho letto in giro è quella di impostare il formato della data/ora del sistema allo stesso modo di quello utilizzato dall'applicativo che alimenta il database.

    Mi sembra tutto molto strano, ma è probabile che sia stato scelto un formato per i campi data/ora che dipenda da qualche impostazione del sistema e pertanto si utilizza correttamente nell'applicazione originale che lo alimenta, mentre non si riesce a leggerlo altrove.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  2. #12
    L'avatar di dante.3d
    dante.3d non è in linea Scolaretto
    Post
    98
    Allora ho constatato che il programma non è fatto con Visual studio ma con QT..
    le date vengono scritte come stringa, e visualizzate in conversione da Tdatatime a string!!
    non riesco a capire... a me i valori non passano, sono tutti null!

  3. #13
    L'avatar di _alka_
    _alka_ ora è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,177
    Quote Originariamente inviato da dante.3d Visualizza il messaggio
    Allora ho constatato che il programma non è fatto con Visual studio ma con QT..
    le date vengono scritte come stringa, e visualizzate in conversione da Tdatatime a string!!
    non riesco a capire... a me i valori non passano, sono tutti null!
    Hai provato a chiedere a chi sviluppa l'applicazione che alimenta il database se usa driver particolari o specifici parametri nella stringa di connessione?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  4. #14
    L'avatar di dante.3d
    dante.3d non è in linea Scolaretto
    Post
    98
    Ecco la stringa di connessione su QT..


    niente di particolare..
    impostazioni STANDARD di QT..

  5. #15
    L'avatar di _alka_
    _alka_ ora è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,177
    Stando all'identificativo del driver specificato, sembra che sia in uso il driver SQLITE che supporta la versione 3 o successiva.

    Il supporto per SQLite 3 è presente in FireDAC, quindi questo non dovrebbe costituire un problema.

    Leggendo la documentazione ufficiale, pare che FireDAC supporti due tipi di linking: statico e dinamico.

    Io controllerei che non sia in uso il link statico, che magari forza l'uso di una versione molto specifica del client di SQLite e magari questo non supporta la versione del database effettiva.

    Si tratta solo di un ipotesi ma... tentare non nuoce.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  6. #16
    L'avatar di dante.3d
    dante.3d non è in linea Scolaretto
    Post
    98
    Quote Originariamente inviato da _alka_ Visualizza il messaggio
    Stando all'identificativo del driver specificato, sembra che sia in uso il driver SQLITE che supporta la versione 3 o successiva.

    Il supporto per SQLite 3 è presente in FireDAC, quindi questo non dovrebbe costituire un problema.

    Leggendo la documentazione ufficiale, pare che FireDAC supporti due tipi di linking: statico e dinamico.

    Io controllerei che non sia in uso il link statico, che magari forza l'uso di una versione molto specifica del client di SQLite e magari questo non supporta la versione del database effettiva.

    Si tratta solo di un ipotesi ma... tentare non nuoce.
    Grazie..
    ho provato.. ma non riesco a cambiare il link in dinamico..
    codice:
    ================================
    Connection definition parameters
    ================================
    Database=\\server\Revolution\revolution.db
    DateTimeFormat=DateTime
    StringFormat=ANSI
    DriverID=SQLite
    ================================
    FireDAC info
    ================================
    Tool = RAD Studio XE7
    FireDAC = 11.0.1 (Build 73709)
    Platform = Windows 32 bit
    Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
    ================================
    Client info
    ================================
    Loading driver SQLite ...
    DLL = <statically linked>
    Client version = 3.8.3.1
    Compile options = ENABLE_COLUMN_METADATA;ENABLE_FTS3;
      ENABLE_FTS3_PARENTHESIS;ENABLE_FTS4;ENABLE_RTREE;
      ENABLE_STAT4;HAS_CODEC;OMIT_AUTOINIT;
      OMIT_DEPRECATED;SYSTEM_MALLOC;TEMP_STORE=2;
      THREADSAFE=2
    ================================
    Session info
    ================================
    Current catalog = 
    Current schema = 
    Total changes = 0
    Database encoding = UTF8
    Encryption mode = <unencrypted>
    Cache size = 10000
    nel file specificato "FireDAC.inc" sotto C:\Program Files (x86)\Embarcadero\Studio\15.0\source\data\firedac
    ho modificato la stringa come richiesto..

    codice:
    {------------------------------------------------------------------------------}
    { SQLite driver                                                                }
    {------------------------------------------------------------------------------}
    {$IFDEF MSWINDOWS}
      {$DEFINE FireDAC_SQLITE_STATIC}        // Use SQLite3 static linking library
    {$ENDIF}
    {$UNDEF FireDAC_SQLITE_STATIC}          // remove '.' to enable dynamic linking
    ma la modifica non ha effetto!!
    esiste un altro modo??

  7. #17
    L'avatar di dante.3d
    dante.3d non è in linea Scolaretto
    Post
    98
    Inoltre un'altra cosa insolita.. è che le stringhe SQLite le passa come WideMemo.. quindi alla costruzione della celle, devo fare:

    codice:
    procedure TForm1.wwDBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    var
      S: String;
    begin
      if Field.DataType = ftWideMemo then
        begin
         S := Field.AsString;
          wwDBGrid1.Canvas.Pen.Color := clWindow;
          wwDBGrid1.Canvas.Brush.Color := clWindow;
          wwDBGrid1.Canvas.Rectangle(Rect);
          wwDBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, S);
       end;
    end;
    è veramente scomodo.. non esiste un modo per passare direttamente sui parametri??

+ Rispondi al Thread
Pagina 2 di 2 primaprima 12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi