SQL Server Compact
#1
Escrito 21 junio 2010 - 08:21
No encuentro la forma de acceder a esos datos desde Delphi, y tampoco encuentro un conector ODBC que me permita usar ADO
¿Alguien sabe como acceder a esos datos?
#2
Escrito 21 junio 2010 - 08:26
http://www.eggheadca...sql-ce-wit.aspx
Salud OS
#4
Escrito 21 junio 2010 - 09:23
http://msdn.microsof...2(SQL.100).aspx
#5
Escrito 21 junio 2010 - 09:34
Por lo que parece, puedes acceder de forma parecida a como lo haces con SQL Server, es decir, a través de ADO. El paquete de SQL Server Compact debería incluir un Ole DB Provider.
Debería pero yo no lo encuentro , con SQL Server nunca he tenido problemas para acceder por ADO pero con este "compact" no hay manera . Por ahí he leído algo sobre OleDB pero estoy bastante perdido.
#6
Escrito 21 junio 2010 - 09:56
Por lo que parece, puedes acceder de forma parecida a como lo haces con SQL Server, es decir, a través de ADO. El paquete de SQL Server Compact debería incluir un Ole DB Provider.
Debería pero yo no lo encuentro , con SQL Server nunca he tenido problemas para acceder por ADO pero con este "compact" no hay manera . Por ahí he leído algo sobre OleDB pero estoy bastante perdido.
Aquí dice que no hay que hacer nada especial, que al instalar el SQL Server Compact Edition en el PC, ya se instala y registra el provider OleDB (SQLCEOLEDB30.DLL).
http://msdn.microsof...58(SQL.90).aspx
Una vez instalado, ya solo deberías necesitar un objeto ADOConnection en Delphi, y configurarlo para utilizar ese Provider.
#7
Escrito 22 junio 2010 - 02:13
Parece ser que el Driver que permite hacer una conexión ADO no esta "muy maduro", y por eso no se muestra en la lista de "Proveedores" cuando vas a configurar la cadena de conexión.
Pero hay dos alternativas, escribir la cadena de conexión "a mano":
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=c:\test.sdf
O modificar el registro para que se muestre:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{F49C559D-E9E5-467C-8C18-3326AAE4EBCC}\OLE DB Provider] @="SQL CE OleDB Provider"
Pero ... aunque ya me deja conectar, cada vez que intento hacer un simple select me devuelve el error "Un objeto estaba abierto" , sin mas explicación. Buscando en google encontré un sitio donde dicen que ese error lo muestra cuando en la tabla hay un campo con mas de 128 caracteres, así que hago la prueba con una tabla con los campos mas pequeño y funciona
Ahora se entiende que piensen que no esta todavía "maduro". Aunque si realmente es un bug yo creo que ya lo debían de haber reparado, ya que la pagina es del 2008, tiempo suficiente para arreglar esto.
En fin, sigo buscando ...
#8
Escrito 22 junio 2010 - 07:26
Salud OS