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 de katixa
1
1
katixa, - Un año como programador en Visual Basic, Visual FoxPro, FoxPro 2
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.