Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2010
Avatar de vpepen
vpepen vpepen is offline
Miembro
 
Registrado: nov 2003
Ubicación: Higüey
Posts: 104
Poder: 21
vpepen Va por buen camino
Modificar valores conexión ODBC

Buenos días a tod@s.

Por favor, les agradecería si pudieran orientarme un poco con respecto a modificar los valores de una conexión a una base de datos a través de ODBC. Tenemos un sistema llamado PixelPoint, desarrollado en Delphi y con base de datos Sybase SQL Anywhere 5.0. Es un sistema de punto de ventas. Tenemos cuatro servidores con pixelpoint y sys respectivas cajas que apuntan a esos servidores. El sistema tiene una parte administrativa que para acceder a ella se puede hacer simplemente modificando los valores de la conexión ODBC (Server Name y Database Name). De esta manera si los usuarios (supervisores) quieren acceder a la base de datos de un servidor especifico solo tienen que modificar estos valores con los valores del servidor que le corresponda (fmspuj, salonvip, segafredo, realson, etc).

Me gustaría saber si es posible desde delphi poder modifica estos valores en la conexión ODBC. Aclaro que se utiliza la misma conexión y lo único que se modifica son los valores (Server Name y Database Name) para acceder a una determinada base de datos. Esto lo deseo hacer para que el usuario no tenga que estar modificando manualmente la conexión ODBC.

Traté de hacerlo a través de un .bat o script pero no me resultó.

Saludos.
Responder Con Cita
  #2  
Antiguo 03-05-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola vpepen,

Desconozco si existe un método más "Adecuado" pero: ¿has probado a cambiarlo en el registro de windows?

Con Delphi, puedes cambiar el valor de la clave "Server" y "Database" en la rama HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\"nombre-de-tu-conexion"

No lo he probado, pero creo que puede ser una solución a tu problema.

Un saludo.
Responder Con Cita
  #3  
Antiguo 03-05-2010
jmandrake jmandrake is offline
Registrado
 
Registrado: jun 2004
Ubicación: Santo Domingo, Rep. Dom.
Posts: 9
Poder: 0
jmandrake Va por buen camino
Con Esto Lo Soluciona....

Hola, te pongo un trozo de codigo que hice para algo parecido, en el creo la conexion ODBC por codigo, como te muestro a continuacion:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  pFn: TSQLConfigDataSource;
  hLib: LongWord;
  strDriver: string;
  strHome: string;
  strAttr: string;
  strFile: string;
  fResult: BOOL;
  ModName: array[0..MAX_PATH] of Char;
  srInfo: TSearchRec;
  RutaPrg,RutaPrg2:String;
begin
  Windows.GetModuleFileName(HInstance, ModName, SizeOf(ModName));
  strHome := ModName;

  if rgIdioma.ItemIndex = 0 then
  RutaPrg:='c:\Archivos de programa'
  else RutaPrg:='c:\Program Files';


  while (strHome[length(strHome)] <> '\') do
    Delete(strHome, length(strHome), 1);
  strFile := strHome + 'TestData.MDB'; // Test Access Rights (Axes =  Access)
  hLib := LoadLibrary('ODBCCP32'); // load from default path
  if (hLib <> NULL) then
  begin
    @pFn := GetProcAddress(hLib, 'SQLConfigDataSource');
    if (@pFn <> nil) then
    begin
      // force (re-)create DSN
      strDriver := 'Firebird/InterBase(r) driver';
      strAttr := Format('DSN=MyDataSource' + #0 +
        'DBQ=%s' + #0 + 'Database='+RutaPrg2+'data\Ejemplo.gdb'+ #0+
        'Client='+ RutaPrg+'\Firebird\Firebird_1_5\bin\fbclient.dll'+#0+
        'UID=SYSDBA'+#0+
        'Password=masterkey'+#0+
        'Description=Test Data' + #0 + #0,
        [strFile]);
      fResult := pFn(0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1]);
      if (fResult = false) then
        ShowMessage('Create DSN (Datasource) failed!');

      // test/create MDB file associated with DSN
      if (FindFirst(strFile, 0, srInfo) <> 0) then
      begin
        strDriver := 'Firebird/InterBase(r) driver';
        strAttr := Format('DSN=MyDatasource' + #0 +
          'DBQ=%s' + #0 +'Database='+RutaPrg2+'data\Ejemplo.gdb'+ #0+
           'Client='+RutaPrg+'\Firebird\Firebird_1_5\bin\fbclient.dll'+#0+
          'UID=SYSDBA'+#0+
          'Password=masterkey'+#0+
          'Description=Conexion de Datos' + #0 +
          'CREATE_DB="%s"'#0 + #0,
          [strFile, strFile]);
        fResult := pFn(0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1]);
        if (fResult = false) then
          ShowMessage('Conexion Creada!');
      end;
      FindClose(srInfo);

    end;

    FreeLibrary(hLib);
  end
  else
  begin
    ShowMessage('Unable to load ODBCJDBC.DLL');
  end;


end;

Nota: Si te fija lo que hago es una conexion a Firebird via ODBC, pero con pocas modificaciones puede hacerlo para cualquier tipo de conexion segun sean los Drivers de datos que vayas a utilizar, pues recuerda que dependiendo del tipo de conexion ODBC varian los parametros solicitado.

Saludo y espero saber si te funcionó....
Responder Con Cita
Respuesta



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
Modificar valores de la computadora de un vehiculo Caral ASM y Microcontroladores 168 01-09-2008 21:49:52
Firebird 1.5, tengo dos tablas necesito modificar un par de valores micky mouse Firebird e Interbase 3 03-12-2007 22:22:36
modificar valores dbgrid cuscus Conexión con bases de datos 8 05-05-2005 10:11:02
Ayuda para modificar valores de un dbgrid fmonte Varios 5 28-08-2004 03:21:44
Como puedo Modificar los valores de las propiedades de un ejecutable DML Varios 4 07-05-2003 21:39:03


La franja horaria es GMT +2. Ahora son las 10:51:48.


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