Ir al contenido



Foto

Error con SQLite y Zeos en Delphi XE3


  • Por favor identifícate para responder
10 respuestas en este tema

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 06 octubre 2015 - 10:46

Hola a todos

Estoy tratando de conectar mi aplicación a una BD SQLite con los componentes Zeos version 7.1.4-stable

 

La configuración de ZConnection no me da error cuando lo activo, pero el ZTable cuando trato de seleccionar la tabla, al desplegar el combo me salta el error de Violación de Acceso

 

Y este es el detalle del error, que en realidad no entiendo muy bien

 

Archivo adjunto  Error Zeos con SQLite.jpg   17,5KB   0 descargas


php
  1. [1A1E46A3]{ZComponentDesign170.bpl} ZPropertyEditor.TZTableNamePropertyEditor.GetValueList$qqrp23System.Classes.TStrings (Line 442, "ZPropertyEditor.pas" + 57) + $3
  2. [1A9D70BE]{ZComponent170.bpl} ZDbcSqLiteUtils.CheckSQLiteError$qqr66System.%DelphiInterface$t38Zplainsqlitedriver.IZSQLitePlainDriver%pvipc29Zdbclogging.TZLoggingCategory20System.UnicodeString (Line 267, "ZDbcSqLiteUtils.pas" + 22) + $32
  3. [1A9DAC75]{ZComponent170.bpl} ZDbcSqLiteStatement.TZSQLiteStatement.ExecuteQuery$qqrx31System.%AnsiStringT$us$i65535$% (Line 210, "ZDbcSqLiteStatement.pas" + 5) + $1A
  4. [1A5134DB]{ZDbc170.bpl } ZDbcStatement.TZAbstractStatement.SetWSQL$qqrx20System.UnicodeString (Line 469, "ZDbcStatement.pas" + 10) + $18
  5. [1A51364D]{ZDbc170.bpl } ZDbcStatement.TZAbstractStatement.ExecuteQuery$qqrx20System.UnicodeString (Line 520, "ZDbcStatement.pas" + 2) + $E
  6. [1A9DEE07]{ZComponent170.bpl} ZDbcSqLiteMetadata.TZSQLiteDatabaseMetadata.UncachedGetTables$qqrx20System.UnicodeStringt1t1x45System.%DynamicArray$t20System.UnicodeString% (Line 1231, "ZDbcSqLiteMetadata.pas" + 19) + $25
  7. [1A506BAE]{ZDbc170.bpl } ZDbcMetadata.TZAbstractDatabaseMetadata.GetTables$qqrx20System.UnicodeStringt1t1x45System.%DynamicArray$t20System.UnicodeString% (Line 2559, "ZDbcMetadata.pas" + 11) + $17
  8. [1A1E45D9]{ZComponentDesign170.bpl} ZPropertyEditor.TZTableNamePropertyEditor.GetValueList$qqrp23System.Classes.TStrings (Line 413, "ZPropertyEditor.pas" + 28) + $13
  9. [1A1E432A]{ZComponentDesign170.bpl} ZPropertyEditor.TZStringProperty.GetValues$qqrynpqqrx20System.UnicodeString$v (Line 305, "ZPropertyEditor.pas" + 3) + $8
  10. [2126D168]{vclide170.bpl} PropBox.TCustomPropListBox.GetPropItem (Line 539, "PropBox.pas" + 4) + $A
  11. [2127446F]{vclide170.bpl} IDEInspListBox.TInspListBox.ListDropDown (Line 1280, "IDEInspListBox.pas" + 9) + $12
  12. [2126A354]{vclide170.bpl} IDEListBtns.TListButton.DropDown (Line 676, "IDEListBtns.pas" + 5) + $A
  13. [21269DC2]{vclide170.bpl} IDEListBtns.TListButton.DefaultHandler (Line 496, "IDEListBtns.pas" + 13) + $4
  14. [21269E56]{vclide170.bpl} IDEListBtns.TListButton.WMLButtonDown (Line 529, "IDEListBtns.pas" + 7) + $2
  15. [5003F93B]{rtl170.bpl  } System.TObject.Dispatch (Line 15789, "System.pas" + 11) + $0
  16. [5040297D]{vcl170.bpl  } Vcl.Controls.TControl.WndProc (Line 7224, "Vcl.Controls.pas" + 91) + $6
  17. [500400C6]{rtl170.bpl  } System.TMonitor.Exit (Line 16653, "System.pas" + 1) + $2
  18. [50040117]{rtl170.bpl  } System.TMonitor.Exit (Line 16675, "System.pas" + 2) + $7
  19. [0CC04C9C]{CnWizards_DXE3.dll} Unknown function at INITWIZARD0001 + $2F37C
  20. [50406C94]{vcl170.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9815, "Vcl.Controls.pas" + 9) + $25
  21. [50407411]{vcl170.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10039, "Vcl.Controls.pas" + 153) + $6
  22. (00036426){CnWizards_DXE3.dll} [0CB77426]
  23. [50406A54]{vcl170.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9751, "Vcl.Controls.pas" + 3) + $6
  24. [5013BDC4]{rtl170.bpl  } System.Classes.StdWndProc (Line 16891, "System.Classes.pas" + 8) + $0
  25. [503FD7AE]{vcl170.bpl  } Vcl.Controls.FindControl (Line 3559, "Vcl.Controls.pas" + 6) + $9
  26. [5052D9AF]{vcl170.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10208, "Vcl.Forms.pas" + 23) + $1
  27. [5052D9F2]{vcl170.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10238, "Vcl.Forms.pas" + 1) + $4
  28. [5052DD2D]{vcl170.bpl  } Vcl.Forms.TApplication.Run (Line 10376, "Vcl.Forms.pas" + 26) + $3

Como podré conectar una BD de SQLite con Delphi XE3 ?

Ademas de Zeos, existe otra forma que sea gratuita?


Editado por JoAnCa, 06 octubre 2015 - 10:48 .

  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 06 octubre 2015 - 11:16

Si, con los mismos componentes que trae el IDE de XE3, por ejemplo en el wiki de embarcadero

 

Saludos.


  • 0

#3 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 06 octubre 2015 - 11:49

Muchas gracias enecumene, no sabia que con esos componentes se podia

 

Pero ahora me da otro error al seleccionar la tabla (usando el componente SQLTable), me dice que: el archivo esta encriptad o no es una BD

 

Pero la BD no esta encriptada porque yo accedo bien con el Navicat y puedo hacer cualquier cosa en ella


Editado por JoAnCa, 06 octubre 2015 - 12:00 .

  • 0

#4 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 06 octubre 2015 - 12:23

Probe con otra BD de SQLite y tambien me da otro error al selecionar la tabla (External Exception C06D007F), sin embargo probe con esos mismos componentes a conectarme a MySQL y funciono bastante bien

 

Este es el detalle del error

 

[75FF9548]{KERNELBASE.dll} RaiseException + $54
(0000064C){DBXSqliteDriver170.bpl} [0EE5164C]
(00000695){DBXSqliteDriver170.bpl} [0EE51695]
[5210D29E]{DbxCommonDriver170.bpl} Data.Dbxcommon.TDBXContext.Trace + $32
(00001009){DBXSqliteDriver170.bpl} [0EE52009]
[0EE5CAB4]{DBXSqliteDriver170.bpl} Data.Dbxsqlite.TDBXSqliteReader + $F4
[0EE59D79]{DBXSqliteDriver170.bpl} Data.Dbxsqlite.TDBXSqliteCommand.DerivedExecuteQuery + $C9
[52109821]{DbxCommonDriver170.bpl} Data.Dbxcommon.TDBXCommand.ExecuteQuery + $45
[52109D5F]{DbxCommonDriver170.bpl} Data.Dbxcommon.TDBXMorphicCommand.ExecuteQuery + $F
[521B0B55]{DbxCommonDriver170.bpl} Data.Dbxmetadatacommandfactory.TDBXDataExpressProviderContext.ExecuteQuery + $4D
[521ABE75]{DbxCommonDriver170.bpl} Data.Dbxmetadatareader.TDBXBaseMetaDataReader.FetchTables + $1C5
[521AB721]{DbxCommonDriver170.bpl} Data.Dbxmetadatareader.TDBXBaseMetaDataReader.FetchCollection + $149
[521B131D]{DbxCommonDriver170.bpl} Data.Dbxmetadatacommandfactory.TDBXMetaDataCommand.DerivedExecuteQuery + $29
[52109821]{DbxCommonDriver170.bpl} Data.Dbxcommon.TDBXCommand.ExecuteQuery + $45
[52109D5F]{DbxCommonDriver170.bpl} Data.Dbxcommon.TDBXMorphicCommand.ExecuteQuery + $F
[5137DB93]{dbexpress170.bpl} Data.SqlExpr.TCustomSQLDataSet.OpenSchema (Line 6869, "Data.SqlExpr.pas" + 126) + $B
[5137BCB5]{dbexpress170.bpl} Data.SqlExpr.TCustomSQLDataSet.ExecuteStatement (Line 6180, "Data.SqlExpr.pas" + 57) + $5
[513746D8]{dbexpress170.bpl} Data.SqlExpr.TCustomSQLDataSet.InternalOpen (Line 3926, "Data.SqlExpr.pas" + 1) + $2
[50A3CEC1]{dbrtl170.bpl} Data.DB.TDataSet.DoInternalOpen (Line 12161, "Data.DB.pas" + 2) + $4
[50A3CF7A]{dbrtl170.bpl} Data.DB.TDataSet.OpenCursor (Line 12190, "Data.DB.pas" + 4) + $2
[5137480F]{dbexpress170.bpl} Data.SqlExpr.TCustomSQLDataSet.OpenCursor (Line 3958, "Data.SqlExpr.pas" + 10) + $4
[50A3CE35]{dbrtl170.bpl} Data.DB.TDataSet.SetActive (Line 12143, "Data.DB.pas" + 12) + $7
[51371D6E]{dbexpress170.bpl} Data.SqlExpr.TSQLConnection.OpenSchemaTable (Line 2843, "Data.SqlExpr.pas" + 9) + $7
[51372B85]{dbexpress170.bpl} Data.SqlExpr.TSQLConnection.OpenSchema (Line 3087, "Data.SqlExpr.pas" + 11) + $12
[51372EEE]{dbexpress170.bpl} Data.SqlExpr.TSQLConnection.GetTableNames (Line 3187, "Data.SqlExpr.pas" + 5) + $B
[2328D13F]{dcldbx170.bpl} SqlReg.TSQLStringPropertyDelegate.GetTableNames (Line 599, "SqlReg.pas" + 3) + $9
[2328D33E]{dcldbx170.bpl} SqlReg.TSQLStringProperty.GetValueList (Line 653, "SqlReg.pas" + 18) + $A
[22CBBDBA]{dcldb170.bpl} DBReg.TDBStringProperty.GetValues (Line 220, "DBReg.pas" + 3) + $7
[2127446F]{vclide170.bpl} IDEInspListBox.TInspListBox.ListDropDown (Line 1280, "IDEInspListBox.pas" + 9) + $12
[2126A354]{vclide170.bpl} IDEListBtns.TListButton.DropDown (Line 676, "IDEListBtns.pas" + 5) + $A
[21269DC2]{vclide170.bpl} IDEListBtns.TListButton.DefaultHandler (Line 496, "IDEListBtns.pas" + 13) + $4
[21269E56]{vclide170.bpl} IDEListBtns.TListButton.WMLButtonDown (Line 529, "IDEListBtns.pas" + 7) + $2
[5003F93B]{rtl170.bpl  } System.TObject.Dispatch (Line 15789, "System.pas" + 11) + $0
[5040297D]{vcl170.bpl  } Vcl.Controls.TControl.WndProc (Line 7224, "Vcl.Controls.pas" + 91) + $6
[500400C6]{rtl170.bpl  } System.TMonitor.Exit (Line 16653, "System.pas" + 1) + $2
[50040117]{rtl170.bpl  } System.TMonitor.Exit (Line 16675, "System.pas" + 2) + $7
[0CC04C9C]{CnWizards_DXE3.dll} Unknown function at INITWIZARD0001 + $2F37C
[50406C94]{vcl170.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9815, "Vcl.Controls.pas" + 9) + $25
[50407411]{vcl170.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10039, "Vcl.Controls.pas" + 153) + $6
(00036426){CnWizards_DXE3.dll} [0CB77426]
[50406A54]{vcl170.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9751, "Vcl.Controls.pas" + 3) + $6
[5013BDC4]{rtl170.bpl  } System.Classes.StdWndProc (Line 16891, "System.Classes.pas" + 8) + $0
[5052EB41]{vcl170.bpl  } Vcl.Forms.TApplication.StopHintTimer (Line 10936, "Vcl.Forms.pas" + 3) + $6
[5052D9AF]{vcl170.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10208, "Vcl.Forms.pas" + 23) + $1
[5052D9F2]{vcl170.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10238, "Vcl.Forms.pas" + 1) + $4
[5052DD2D]{vcl170.bpl  } Vcl.Forms.TApplication.Run (Line 10376, "Vcl.Forms.pas" + 26) + $3

 

 

Que tendrá mi Delphi en contra de SQLite ??

No quiere conectarse de ninguna manera


  • 0

#5 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 octubre 2015 - 07:17

Sucedio algo extraño  :shocked:

 

Probe en la PC de mi casa y funciono perfecto, pude conectar y modificar la tabla sin problemas

 

Pudiera ser porque en la PC de mi casa tengo solo Delphi XE3, y en la PC del trabajo estan instalados Delphi 7 y Delphi XE3 ????

Estaran interfirindose??


  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 07 octubre 2015 - 07:35

O tal vez le falta el DLL.


  • 0

#7 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 octubre 2015 - 08:54

Me fije bien en lo que hice, y parece que me falto por configurar algo en los parametros, pues estuve completandolos y ya me salio en la PC del trabajo tambien

 

Pero sigo con problemas, y este me sucedio en las dos PC

Para el caso de los cuadros de texto (TDBEdit) y etiquetas (TDBText) funciona bien, pero para el caso del Grid (TDBGrid) me da error  :( :angry:

 

Al asignarle el Datasource dice que: "Operacion no permitida en un dataset unidireccional"

 

Archivo adjunto  Error SQLite y dbexpress.jpg   10,96KB   0 descargas


  • 0

#8 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 octubre 2015 - 11:11

Solucionado

Volvi a probar con los Zeos, despues de copiar de nuevo la DLL y ya funciona todo bien

Al parecer la DLL tenia problemas y la reemplacé


  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.286 mensajes
  • LocationArgentina

Escrito 07 octubre 2015 - 11:40

Hola JoAnCa,

Me alegro que hayas logrado solucionar tus problemas.

Ya que veo que estás empleando SQLite y Zeos y yo tengo pensado usarlos también (aunque en Lazarus) me preguntaba como encaras el empleo de fechas. Por lo que pude interiorizarme sobre SQLite este no soporta fecha/hora, sino que internamente lo almacena en entero o bien en modo texto. ¿Los componentes te hacen todo el trabajo de forma transparente y automática? ¿O te vez condicionado a hacer alguna conversión o pasos intermedios para interpretar las fechas y/o horas?

 

Saludos,


  • 0

#10 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 748 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 octubre 2015 - 12:49

Bueno en otra ocacion que use SQLite, vi ese problema, pero fue facil de solucionar, simplemente le escribi el tipo de dato como DATE (o DATETIME), ya que en la lista de tipos no aparece, pero te acepta escribirle otros tipos y funciona bien

 

Segun recuerdo, no tuve que hacer nada intermedio, con definirle el tipo en la BD, el componente lo asimila bien

 

Yo uso para manipular las BD SQL (MySQL, SQLServer, SQLite, etc.) el Navicat, muy buena herramienta para estas cosas

 

De hecho me estuve fijando ahora en la BD SQLite que quiero conectar, y hay tablas con campos DATETIME


Editado por JoAnCa, 07 octubre 2015 - 12:53 .

  • 1

#11 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.286 mensajes
  • LocationArgentina

Escrito 07 octubre 2015 - 01:37

Te agradezco el aporte. Estimo que en Lazarus las cosas son igual y los componentes hacen bien el trabajo. En estos días estaré dando pruebas y si todo marcha bien ya me adentro de lleno en mi proyecto.

 

Saludos,


  • 0