Dbcombo

Hola.. Tengo un problemota lo que pas es que estoy desarrollando un sistema en el cual uso, dbcombos, pero los tengo que llenar con procedimientos almacendos en sql server 7.0, y esto me ha causado muchos problemas, no se si me puedas explicar como hacerlo de forma detallada, o si tuvieras un ejemplito que me sirviera para guiarme por que programo en 3 capas. Bueno muchas gracias.

1 respuesta

Respuesta
1
En principio no deberías tener ningún problema para usar procedimientos y rellenar los combos. Hazte un procedimiento que simplemente haga una sentencia SELECT y devuelva el valor, y si es necesario le pasas parámetros.
Las tablas no se van a bloquear ya que es sólo lectura.
Cuando tienes el procedimiento almacenado en el servidor, lo único que has de hacer es generar una consulta desde VB devolviendo el valor a un RecordSet:
Set Cmd1 = New ADODB.Command
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "nombreProcedimiento"
Cmd1.CommandType = adCmdStoredProc
Set Rs1 = Cmd1.Execute()
Si te fijas, indicas que el Command va a ser un procedimiento almacenado (adCmdStoredProc) en lugar de una cadena SQL "a pelo". Y luego asignas al recordset lo que devuelva la sentencia Execute del Command.
Para ello necesitas antes generar el objeto recordset también:
Set rs = New ADODB.RecordSet
El procedimiento supongo que sabes como hacerlo, aún así pongo un ejemplo que "creo" funciona (hace meses que no ando con el tema...):
Create Procedure nombreProcedimiento as
select * from clientes
go
En principio eso ya debería devolver en el recordset todos los registros de la tabla de clientes. Una vez hecho eso no tienes más que entrar en un bucle hasta fin de RecordSet para ir añadiendo registros al combo:
If Not(rs.EOF And rs.BOF) Then
Do While Not rs.EOF
cmbcliente.AddItem rs("Nombre")
rs.MoveNext
Loop
End If
Primero compruebas que realmente haya registros (EOF y BOF falsos). Luego haces un bucle hasta fin de registros y en cada vuelta añadies el campo "nombre" al combo.
Espero haya servido de ayuda... si no te quedan claras las cosas me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas