Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Conexión con bases de datos
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Conexión con bases de datos

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 30/03/2011
oscarac's Avatar
[oscarac] oscarac is offline
Miembro Premium
 
Join Date: Sep 2006
Location: Lima - Perú
Posts: 2,015
Poder: 22
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.....
Reply With Quote
  #2  
Old 30/03/2011
duilioisola's Avatar
[duilioisola] duilioisola is offline
Miembro Premium
 
Join Date: Aug 2007
Location: Barcelona, España
Posts: 1,806
Poder: 22
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 ...');
Reply With Quote
  #3  
Old 30/03/2011
Neftali [Germán.Estévez]'s Avatar
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Join Date: Jul 2004
Location: Barcelona - España
Posts: 19,449
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.
Reply With Quote
  #4  
Old 30/03/2011
RICTAPIA5's Avatar
RICTAPIA5 RICTAPIA5 is offline
Miembro
 
Join Date: 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
Reply With Quote
  #5  
Old 30/03/2011
oscarac's Avatar
[oscarac] oscarac is offline
Miembro Premium
 
Join Date: Sep 2006
Location: Lima - Perú
Posts: 2,015
Poder: 22
oscarac Va por buen camino
Quote:
Originally Posted by RICTAPIA5 View Post
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.....
Reply With Quote
  #6  
Old 31/03/2011
RICTAPIA5's Avatar
RICTAPIA5 RICTAPIA5 is offline
Miembro
 
Join Date: 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
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Cosmos con Multibase? Luprix Conexión con bases de datos 2 25/11/2010 11:35
¿Alguien conoce Multibase? vicacos Conexión con bases de datos 4 17/10/2008 15:21
Multibase Transtools WEdit NTVDM ha encontrado un error raulcarrasco SQL 0 22/01/2008 17:25
Nesecito ayudo Transtools Multibase armadillo Conexión con bases de datos 1 10/06/2005 14:20
Passar de Multibase a SqlServer aitken MS SQL Server 1 11/05/2004 22:35


All times are GMT +2. The time now is 10:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi