Sábado 14 de Diciembre de 2024, 14:39
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Acceso A Datos Desde Una Dll En C++
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Acceso A Datos Desde Una Dll En C++ (Leído 1853 veces)
orosello
Nuevo Miembro
Mensajes: 15
Acceso A Datos Desde Una Dll En C++
«
en:
Lunes 7 de Mayo de 2007, 19:52 »
0
Hola estoy intenetando acceder a una base de datos ya sea en SQL o en Acces desde una dll hecha en c++, pero cuando tratro de usar el namespace Sqlclient en el caso de acceder al servidor SQL me dice que no es un namespace válido. También traté de hacerlo importando directamente la dll ado y resultó lo que pasa que me inserta los valores una sola vez, es decir yo capturo los distintos eventos del sistema ejemplo, cuando se crea una nueva ventana, cuando se destruye, cuando se activa y a partir de ahí obtengo toda la información referente a dicha ventana, clase, nombre de la ventana, proceso que la ejecutó, etc. Pero cuando trato de isertar esa información en la base de datos solo me lo inserta para el 1er evento, lugo la aplicación no hace más nada. Por favor si alguien sabe donde es el problema se lo agradeceria mucho.
Saludos Onel.
Tweet
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Acceso A Datos Desde Una Dll En C++
«
Respuesta #1 en:
Miércoles 9 de Mayo de 2007, 05:01 »
0
ayudaria mucho si adjuntas el codigo, parece problema de mal uso e los componentes de SQL para manipular los datos pero podría ser cualquier cosa.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
orosello
Nuevo Miembro
Mensajes: 15
Re: Acceso A Datos Desde Una Dll En C++
«
Respuesta #2 en:
Miércoles 9 de Mayo de 2007, 06:20 »
0
Hola: JuanK
Mira lo que hacemos es lo siguiente:
1- Crear una clase donde importamos la dll de ADO
Código: Text
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")
2- Esta tiene un método
Código: Text
const LPCSTR STRING_CONNECTION = ..............
BOOL Conectar(_ConnectionPtr& pCone)
{
_bstr_t bstrCone(STRING_CONNECTION);
try
{
pCone.CreateInstance (__uuidof(Connection));
pCone->Open(bstrCone ,_bstr_t (""), _bstr_t (""), adModeUnknown );
return TRUE;
}
catch (_com_error& ce) { return FALSE; }
catch(...) { MessageBox(NULL,"Ah ocurrido otro error","Error",MB_OK);
return FALSE; }
}
3- Luego yo incluyo esta clase en la stdafx.h que la uso en mi dll. Posteriormente en mi dll creo la siguiente funcion
Código: Text
BOOL InsertPerson()
{
BOOL bRespuesta = TRUE;
_ConnectionPtr pAdoCone;
_RecordsetPtr Rs(__uuidof(Recordset));
if(Conectar(pAdoCone))
{
Rs->PutRefActiveConnection(pAdoCone);
_bstr_t bstrSql("Insert Into Client (id,name) Values (3,'name')");
Rs->Open(bstrSql, vtMissing, adOpenStatic, adLockReadOnly, adCmdUnknown);
SetCursor(LoadCursor(NULL,IDC_WAIT));
return bRespuesta;
}
}
Ahora pero cuando ejecuto mi aplicación y utilizo la dll, solo inserta en la BD una sola vez, e incluso deja de ejecutar las restantes funciones de la aplicación.
Nota: Si me pudieras orientar sobre otra posible solución....
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Acceso A Datos Desde Una Dll En C++
«
Respuesta #3 en:
Miércoles 9 de Mayo de 2007, 19:13 »
0
pueden haber mas problemas, pero uno de ellos o el primero que veo asi de pasadita es que estas abriendo una nueva conexion cada vez que insertas un dato... no es mucho mas fácil abrir la conexion una única vez? porque me late que despues de la pimera vez que llamas a insertar el metodo conectar siempre te dara false por lo cual no insertaras nada.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
orosello
Nuevo Miembro
Mensajes: 15
Re: Acceso A Datos Desde Una Dll En C++
«
Respuesta #4 en:
Viernes 11 de Mayo de 2007, 10:09 »
0
Hola:
Estuve revisando lo que me dijiste, y lo que no sirve es el modo de hacer la conexion a la base de datos. Tu sabes alguna manera diferente de hacer esto en la dll para poder insertar los datos que necesito?
Saludos
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Acceso A Datos Desde Una Dll En C++
«
Respuesta #5 en:
Viernes 11 de Mayo de 2007, 15:35 »
0
no por dos razones
1- no acostumbro a utilizar ado
2- no acostumbro a utilizar C
busca en google tutotiales de ADO o en MSDN
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Acceso A Datos Desde Una Dll En C++