Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
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....

Código Delphi [-]
 
if Casa then
..... StrSql := 'Select..... // Query que funcione en SQL Server
Else
..... StrSql := 'Select.... // Query que funcione en Access

existe o alguien sabe un mejor metodo?

gracias
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 30-03-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.738
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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.

Código Delphi [-]
{Le envías un sentencia SQL que funcione en MSSQL y te devuelve una que funciona en Access}
procedure TraduceSQL(SQL : string) : string;
begin
   if (Casa) then
      Result := SQL;
   else
   begin
      // Aquí viene lo dificil
      // modificar las partes del sql que no funcionen en Access
      ...
   end;
end;

StrSql := TraduceSQL('SELECT ...');
Responder Con Cita
  #3  
Antiguo 30-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.320
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 30-03-2011
Avatar de RICTAPIA5
RICTAPIA5 RICTAPIA5 is offline
Miembro
 
Registrado: mar 2010
Posts: 41
Poder: 0
RICTAPIA5 Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 30-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por RICTAPIA5 Ver Mensaje
Oscar

ya tengo una aplicacion que funciona el mismo fuente en acces y sqlserver
y como lo has echo? tienes nu ejemplo?

[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
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 31-03-2011
Avatar de RICTAPIA5
RICTAPIA5 RICTAPIA5 is offline
Miembro
 
Registrado: mar 2010
Posts: 41
Poder: 0
RICTAPIA5 Va por buen camino
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 OLEDBatabase Password="";Jet OLEDB:Engine Type=6;Jet OLEDBatabase 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 OLEDBon'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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cosmos con Multibase? Luprix Conexión con bases de datos 2 25-11-2010 11:35:48
¿Alguien conoce Multibase? vicacos Conexión con bases de datos 4 17-10-2008 15:21:17
Multibase Transtools WEdit NTVDM ha encontrado un error raulcarrasco SQL 0 22-01-2008 17:25:53
Nesecito ayudo Transtools Multibase armadillo Conexión con bases de datos 1 10-06-2005 14:20:40
Passar de Multibase a SqlServer aitken MS SQL Server 1 11-05-2004 22:35:49


La franja horaria es GMT +2. Ahora son las 11:22:43.


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
Copyright 1996-2007 Club Delphi