Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


AYUDEME CON ADO

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

AYUDEME CON ADO

Notapor gabrieluno el Jue Feb 02, 2006 8:32 am

Hola como estan grupo no se si me pueden ayudar.

implemente el siguiente codigo para desplasarme y a la ves grabar en un campo determinado de una tabla de una base de datos.

void CConvenioDeTierras::Convertir()
try
{
m_pRs4.CreateInstance(__uuidof(Recordset));

m_pRs4->CursorLocation = adUseClient;
m_pRs4->Open((LPCTSTR)m_Texto4, (LPCTSTR)m_strConnection, adOpenStatic,
adLockOptimistic, adCmdUnknown);
N_Pago=m_pRs4->RecordCount;
while(m_pRs4->EndOfFile == VARIANT_FALSE)
{
Cont++;
m_pRs4->GetFields()->GetItem(short(6))->Value =_bstr_t(Cont);
UpdateData(false);
m_pRs4->MoveNext();
m_pRs4->Update();
}

}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
}

pero al momento de ejecutar me sale un error diciendome que el objeto no esta abierto, pero yo especifique al en el OnInitDialog(), la apertura de mi tabla y mi base de datos.

o derepente estoy mal en algun sitio, puesto que lo que quiero es enumerar un campo llamado N_NumeroId sabiando la cantidas de filas que tiene mi tabla; puesto que si en mi tabla inicial estaba enumerado el campo

N_NumeroId
0
1
2
3

y a la hora de borrar un registro cualquiera por ejemplo el 2 me queda

N_NumeroId
0
1
3

entonces se desenumera mi campo y lo que quiero es que cuando se precione el boton de borrar el registro ahi entra la fucnion mencionada donde se supone que debe ordenar ese campo asi

N_NumeroId
o
1
2

para despues yo poder manejar con mas confiabilidad los datos.
Nose si me pueden ayudar o derepente hay otra manera para solucionar el problema gracias.

gracias por anticipado.
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 58
Registrado: Mar May 17, 2005 11:27 am

Re: AYUDEME CON ADO

Notapor latindeveloper el Jue Feb 02, 2006 8:36 am

Si cambias el orden de este codigo:

m_pRs4->MoveNext();
m_pRs4->Update();

por este:


m_pRs4->Update();
m_pRs4->MoveNext();
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Notapor gabrieluno el Vie Feb 03, 2006 10:18 pm

Holas lo intente pero me sale que el objeto no esta iniciado y borra el registro pero no ordena el campo

N_NumeroId
0
1
2
3

i se queda asi

N_NumeroId
0
1
3

mas no se ordena, que es lo que puedo estar haciendo mal o que es lo que deberia hacer

gracias.
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 58
Registrado: Mar May 17, 2005 11:27 am

Notapor gabrieluno el Mar Feb 07, 2006 11:29 am

HOLA AMIGOS YO DE NUEVO MOLESTANDOLOS, NOSE SI ME PODRIAN AYUDAR EN QUE ESTA MAL MI CODIGO YA QUE NO QUIERE HACER LAS RESPECTIVAS MODIFICASIONES EN EL CAMPO QUE QUIERO CAMBIAR, PUESTO QUE ME SALE QUE "EL OBJETO NO HA SIDO ABIERTO" UN FAVOR NOSE SI ME PUEDEN AYUDAR O DEREPENTE PUEDE HABER OTRA MANERA DE HACER EL MISMO PROCEDIMIENTO GRACIAS.
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 58
Registrado: Mar May 17, 2005 11:27 am

Notapor gabrieluno el Mar Feb 07, 2006 10:09 pm

amigos les doy mi autorespuesta, el problema que sucedia era que no podia iniciar el objeto, entonces solo era hacerlo de la siguiente manera.

Código: Seleccionar todo
long Cont=0;
try
{
m_pRs4.CreateInstance(__uuidof(Recordset));
m_Texto4.Format("SELECT *FROM ConvenioT");       
m_pRs4->CursorLocation = adUseClient;
m_pRs4->Open((LPCTSTR)m_Texto4, (LPCTSTR)m_strConnection, adOpenStatic, adLockOptimistic, adCmdUnknown);
N_Pago=m_pRs4->RecordCount;
while(m_pRs4->EndOfFile == VARIANT_FALSE)
{
m_pRs4->GetFields()->GetItem(short(6))->Value =_bstr_t(Cont);
Cont++;
UpdateData(false);
m_pRs4->Update();
m_pRs4->MoveNext();
}
                  
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
      
}


solo era dicionar

Código: Seleccionar todo
m_Texto4.Format("SELECT *FROM ConvenioT");       


asi que ahora si funciona.
gabrieluno
Usuario Activo
Usuario Activo
 
Mensajes: 58
Registrado: Mar May 17, 2005 11:27 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados