Sistema MultiBase de Datos
buenas madrugadas....
Tengo una inquietud ahora que me he visto obligado avanzar mi sistema en 2 lugares distintos.... en uno de ellos uso access y en el otro MS SQL Server entonces... en las consultas hago algo asi....
existe o alguien sabe un mejor metodo? gracias |
Podrías hacer una función a la que le pases una sentencia SQL y te devuelva una traducida para el motor de base de datos que necesites.
Lo que desconozco son las diferencias entre las sintaxis SQL de uno y otro motor.
|
En mi caso era un sistema bastante más complejo, ya que se trataba de tener algo similar pero para 5 SGBD's distintos. En nuestro caso utilizamos herencia.
Una clase genérica TGenSQL con los métodos necesarios para generar todas las SQL. A partir de ahí se derivan las clases para cada motor concreto, de forma que debes redefinir sólo aquellas propiedades que en cada motor son diferentes. |
dephi access & sql server
Oscar
ya tengo una aplicacion que funciona el mismo fuente en acces y sqlserver siempre y cuando uses TADO y sus conectores y que la base de datos de sql server la hayas migrados desde la herramienta de exportación de access vas a tener problemas con campos bit por lo que te recomiendo usar el 0 y 1 para asignar datos y algunos temas de como se hacen group by pero practicamente todo es lo mismo |
Cita:
[quoted] siempre y cuando uses TADO y sus conectores y que la base de datos de sql server la hayas migrados desde la herramienta de exportación de access [/quote] uso ADO y exporte la base de datos del SQL Server a Access |
Access & SQL Server
1)desde el acces 2007 (y hasta donde recuerdo el 2003 tambien puede)
crea tu BD y ponle las tablas que usarás y luego dale exportar a sqlserver 2)Para conectarme con SQL server usando Tadoconnection y esto lo leo desde un ini dependiendo de mi cliente conxString= Provider=SQLNCLI.1;Password=1234567;Persist Security Info=True;User ID=sa;Initial Catalog=donativosleon13;Data Source=pragmatica\sqleng 3) Para conectarme con Acces usando el MISMO Tadoconnection y esto lo leo desde un ini dependiendo de mi cliente conxString= Provider=Microsoft.ACE.OLEDB.12.0;Password="";User ID=Admin;Data Source=C:\Donativos\donantivos.accdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False 4)Éste es un query en un TADOQUERY y funciona en los dos SELECT DONANTE.DOMICILIO_FISCAL, DONANTE.COLONIA_FISCAL, DONANTE.MUNICIPIO_ENVIO, DONANTE.ESTADO_ENVIO, DONANTE.RFC, DONANTE.EMPRESA, DONANTE.PUESTO, DONANTE.CLAVE_SAE, C_DESTINO_RECURSO.DESTINO_RECURSO, DONATIVO.ID_DESTINO_RECURSO, DONANTE.ID_DONANTE AS IDDONANTE, DONATIVO.ID_DONANTE, DONATIVO.ID_DONATIVO, DONANTE.DIA_COBRO_TARJETA, DONANTE.TITULO, DONANTE.NOMBRE, DONANTE.APELLIDO_PATERNO, DONANTE.APELLIDO_MATERNO, DONANTE.RECIBO_A_NOMBRE_DE, DONANTE.TELEFONO_OFICINA, DONANTE.TELEFONO_CASA, C_FORMA_PAGO.D_FORMA_PAGO, LAPSO_COBRO.D_LAPSO_COBRO, DONATIVO.COMENTARIO, DONATIVO.COMENTARIO_2, DONATIVO.MONTO_SUGERIDO, DONATIVO.MONTO_X_COBRAR, DONANTE.ID_BANCO FROM C_BANCO INNER JOIN (LAPSO_COBRO INNER JOIN (DONANTE INNER JOIN (C_ESTADO_DONATIVO INNER JOIN (DONATIVO INNER JOIN C_FORMA_PAGO ON DONATIVO.ID_FORMA_PAGO = C_FORMA_PAGO.ID_FORMA_PAGO) ON C_ESTADO_DONATIVO.ID_ESTADO_DONATIVO = DONATIVO.ID_ESTADO_DONATIVO) ON DONANTE.ID_DONANTE = DONATIVO.ID_DONANTE) ON LAPSO_COBRO.ID_LAPSO_COBRO = DONANTE.ID_LAPSO_COBRO) ON C_BANCO.ID_BANCO = DONANTE.ID_BANCO INNER JOIN C_DESTINO_RECURSO C_DESTINO_RECURSO ON (DONATIVO.ID_DESTINO_RECURSO = C_DESTINO_RECURSO.ID_DESTINO_RECURSO) WHERE DONATIVO.ID_CAMPANIA=:PID_CAMPANIA ORDER BY DONANTE.APELLIDO_PATERNO,DONANTE.NOMBRE 5)Desde mi humilde modo de ver a tu cliente que tiene acces deberías instalarle el sql server 2005 o 2008 la version EXPRESS y esa es gratuita y funciona perfectamente en una PC cualquier cosa por favor dime |
La franja horaria es GMT +2. Ahora son las 13:06:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi