Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Como crear un origen de datos ODBC al finalizar aplicacion?
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Como crear un origen de datos ODBC al finalizar aplicacion?

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Como crear un origen de datos ODBC al finalizar aplicacion? Responder citando

Hola a todos nuevamente!
Mi pregunta es la siguiente:
Una vez terminada una aplicacion en delphi con conexion a una base de datos usando ODBC (ya sea usando Mysql o firebird o cualquier base de datos con ODBC), cuando se la entrego a un cliente por ejemplo, como se hace para que se cree el origen de datos automaticamente, sin que el usuario tenga que intervenir en este proceso?

Antes tenia que ir a panel de control/origenes de datos y crearlo, pero si quiero hacer una aplicacion de uso masivo y distribuirla a traves de internet, seguramente habran muchos usuarios que no sepan hacer el origen de datos.

Bueno esa es mi duda.
Desde ya muchas gracias! Saludos!!
MensajePublicado:
Lun Oct 24, 2011 6:26 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Como crear un origen de datos ODBC al finalizar aplicaci Responder citando



Anuncios



agustinbus escribió:
Hola a todos nuevamente!
Mi pregunta es la siguiente:
Una vez terminada una aplicacion en delphi con conexion a una base de datos usando ODBC (ya sea usando Mysql o firebird o cualquier base de datos con ODBC), cuando se la entrego a un cliente por ejemplo, como se hace para que se cree el origen de datos automaticamente, sin que el usuario tenga que intervenir en este proceso?

Antes tenia que ir a panel de control/origenes de datos y crearlo, pero si quiero hacer una aplicacion de uso masivo y distribuirla a traves de internet, seguramente habran muchos usuarios que no sepan hacer el origen de datos.

Bueno esa es mi duda.
Desde ya muchas gracias! Saludos!!


Tienes varias posibilidades, te comentamos algunas:

1. Si usas algún instalador automático, éste suele llevar herramientas para crear dichos orígenes de datos de forma automática. Uno de los más potentes es InstallShield, aunque existen otros.

2. La otra posibilidad, más casera, es que tú mismo generes el ODBC de forma manual (como hasta ahora desde el Panel de Control) y luego veas las claves de registro que en realidad crea para ese origen de datos en el Regedit (Registro de configuraciones de Windows). Una vez que tengas claras las claves del regedit, deberás generarlas con tu programa en Delphi.

Por ejemplo, para un ODBC de Oracle 10g, las claves del regedit se crean en:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

En la ruta anterior suelen estar todos los orígenes de datos del equipo (sean del motor de bases de datos que sean). Si buscas el que has creado, por ejemplo "bdoracle", dentro verás las claves necesarias. Como te decimos, para un origen de datos ODBC de Oracle, en nuestro caso ha creado:

"Driver"="C:\\oracle\\product\\10.2.0\\client_1\\BIN\\SQORA32.DLL"
"DisableRULEHint"="T"
"Attributes"="W"
"FetchBufferSize"="64000"
"NumericSetting"="NLS"
"ForceWCHAR"="F"
"FailoverDelay"="10"
"FailoverRetryCount"="10"
"MetadataIdDefault"="F"
"BindAsFLOAT"="T"
"BindAsDATE"="T"
"CloseCursor"="F"
"EXECSchemaOpt"=""
"EXECSyntax"="F"
"Application Attributes"="T"
"ResultSets"="T"
"QueryTimeout"="F"
"Failover"="T"
"Lobs"="F"
"DisableMTS"="T"
"DisableDPM"="F"
"BatchAutocommitMode"="IfAllSuccessful"
"Description"="Base de datos Oracle aplicación Facturación y Contabilidad"
"ServerName"="servidor"
"Password"="contraseña"
"UserID"="usuario"
"DSN"="BDORACLE"


Una vez que tengas las claves, tendrás que realizar un procedimiento en Delphi para crearlas en el PC donde se ejecute tu aplicación. Por ejemplo:

Código:

unit UnidadCrearODBC;

interface

uses
  registry, ............

..........

procedure TformCrearODBC.btCrearODBCClick(Sender: TObject);
var
  registro : TRegistry;
begin
  //Si no existe la "carpeta" o clave del ODBC indicado en el formulario
  //la creamos
  registro := TRegistry.Create;
  registro.RootKey := HKEY_LOCAL_MACHINE;
  if registro.OpenKey ('SOFTWARE\ODBC\ODBC.INI', false) then
    registro.CreateKey(txtNombreODBC.Text);
  registro.Destroy;

  registro := TRegistry.create;
  registro.RootKey := HKEY_LOCAL_MACHINE;
  if registro.OpenKey ('SOFTWARE\ODBC\ODBC.INI\' + txtNombreODBC.Text, false) then
  begin
    //indicamos cómo crear algunos de los valores, como ejemplo
    registro.WriteBool('DisableRULEHint', True);
    registro.WriteInteger('FetchBufferSize', 64000);
    //los valores variables como contraseña, servidor y usuario
    //los cogerán de cuadros de texto del formulario
    registro.WriteString('Password', txtContrasena.Text);
    registro.WriteString('ServerName', txtServidor.Text);
    registro.WriteString('UserID', txtUsuario.Text);

    //crear el resto, si tiene subclaves, crearlas también
    ....................

  end;
  registro.Destroy;
end;


El inconveniente de hacerlo manual te surgirá con aquellos orígenes de datos que requieran del controlador instalado. Por ejemplo, Oracle requiere de Oracle Client, aunque crees el origen de datos como te hemos indicando anteriormente (en el regedit), si no existen las librerías para la conexión no te funcionará. Esto que hemos explicado es útil, por ejemplo, para orígenes de datos que ya incorpora el propio Windows de forma predeterminada (sin instalar nada), como por ejemplo Access. Además, dependiendo de los equipos si son Windows XP, Windows Vista, Windows 7 podrán tener por defecto unos u otros drivers ya instalados.
MensajePublicado:
Jue Nov 17, 2011 9:05 am
Top of PageVer perfil de usuario
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Responder citando

Siempre usted dando fantásticas respuestas. Valió la pena esperar!! Le agradezco de corazón esta información!!! Saludos!
MensajePublicado:
Mie Nov 23, 2011 3:37 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A