• Viernes 15 de Noviembre de 2024, 07:40

Autor Tema:  Re: Crear un dsn  (Leído 2260 veces)

Pieza

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Crear un dsn
« en: Domingo 11 de Mayo de 2003, 17:58 »
0
Hola a todos!
Estoy desarrollando un CD multimedia (con Director) para su posterior distribución. El problema me surge porque accede a una base de datos (por odbc) que va tambien en el CD, ¿cómo registro esa base de datos en el sistema del usuario?
¿Hay alguna manera de conectarse a la bd que no sea por odbc o por internet?

¿Sería posible hacerlo con un programa de c?

Gracias a todos

xoom

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
    • http://www.recursospc.tk
Re: Crear un dsn
« Respuesta #1 en: Martes 13 de Mayo de 2003, 14:22 »
0
Claro, desde C podrías acceder a la BDD usando ADO, que es bastante sencillo y no tienes que dar de alta la BDD en ningún sitio, sólo la abres indicando su ruta, que puede ser tanto absoluta (no te valdría para un CD) como relativa (referida al directorio actual del ejecutable, que es lo que necesitarías en tu caso).
Échale un vistazo al manejo del ADO, verás como es muy sencillo.
:comp:

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Crear un dsn
« Respuesta #2 en: Sábado 20 de Septiembre de 2003, 00:48 »
0
Código: Text
  1.  
  2.  
  3.  
  4. //---------------------------------------------------------------------------
  5. #include <vcl.h>
  6. #include <stdio.h>
  7. #pragma hdrstop
  8.  
  9. #include "Unit1.h"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm1 *Form1;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21.  
  22. bool CreateODBCAlias(String sAlias, String sDB, String sDir, String sDescription)
  23. {
  24.     typedef BOOL (__stdcall *pSQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
  25.     pSQLConfigDataSource SQLConfigDataSource;
  26.     HINSTANCE hLib;
  27.     bool bRet = false;
  28.     hLib = LoadLibrary("odbccp32.dll");
  29.      if (hLib)
  30.        {
  31.         SQLConfigDataSource = (pSQLConfigDataSource) GetProcAddress(hLib, "SQLConfigDataSource");
  32.         if (SQLConfigDataSource)
  33.          {
  34.            char szParam[1024];
  35.            sprintf(szParam, "DSN=%s; Description=%s; DefaultDir=%s; DBQ=%s",
  36.                           sAlias.c_str(), sDescription.c_str(), sDir.c_str(), sDB.c_str());
  37.            bRet = SQLConfigDataSource(NULL, 1 /*ODBC_ADD_DSN*/,"Microsoft Access Driver (*.mdb)", szParam);
  38.          }        FreeLibrary(hLib);
  39.         }
  40.   // Devuelve true si se crea o false en caso contrario
  41. return bRet;
  42. }
  43.  
  44.  
  45. void __fastcall TForm1::Button1Click(TObject *Sender)
  46. {
  47. bool ret;
  48. ret = CreateODBCAlias("MiAlias",
  49. "bd.mdb",
  50. "C:bd",
  51. "Esto es una prueba");
  52. // Devuelve true si se crea correctamente
  53. ShowMessage(ret ? "Creado" : "Error");
  54.  
  55.  
  56. }
  57. //---------------------------------------------------------------------------
  58.  
  59.  
  60.  
  61.  
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

carlos_lue

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Re: Crear un dsn
« Respuesta #3 en: Miércoles 24 de Septiembre de 2003, 23:25 »
0
como complemento a mensage anterior,
si deseas que el programa funcione en donde se instale, no debes poner la ruta fìsica, debes poner ruta relativa.

CODIGO:

bool ret;
ret = CreateODBCAlias("MiAlias",
"bd.mdb",
ExtractFilePath(Application->ExeName),
"Esto es una prueba");
// Devuelve true si se crea correctamente
ShowMessage(ret ? "Creado" : "Error");

solo se sustituye :
"C:directorio",  por la direccion en donde se encuentra el programa.
ExtractFilePath(Application->ExeName),


bueno un saludo a todos.

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Crear un dsn
« Respuesta #4 en: Sábado 18 de Octubre de 2003, 22:01 »
0
En realidad se tiene que poner la ruta del directorio donde se encuentra la BD.-

Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]