Aclaración sobre como recuperar los registros en Visual Basic

Tienes otro problema ahí, porque si vos tienes 50000 registros y no hiciste algún filtro te tiene que traer todos
Saludos
Si me mandas la consulta y como haces la conexión te puedo ayudar
1

1 respuesta

Respuesta
1
¿Por qué le pasas 0?
set rst=ncuGetRecordset(lsssql,0)
Private Function ncuGetRecordset(lsssql As String,lnnfilas as long) As
Dim rsdata As ADODB.Recordset
rsdata.MaxRecords =lnnfilas
Hola como puedo recuperar todos los registros obtenidos mediante una consulta a una tabla de MSSQL Server 2000 usando visual basic 6.0 y ado 2.5, por ejemplo en una tabla tengo 80000 registros y cuando hago una consulta solo me muestra un máximo de 2048 registros, y lo que quisiera es recuperar una cantidad mayor por ejemplo 15000 registros ya que me es necesario exportarlo a un archivo de excel.
Muchas gracias de antemano.
Solo un numero de registros le doy una valor al rsdata.MaxRecords .
Esta consulta me devuelve como 20000 registros, y lo que quisiera es mostrar todos en el
grid para poder exportarlo a excel.
LO que me he dado cuenta es que en maquinas con windows 98 devuelve una cantidad de registros
de hasta más de 7000 registros, pero en maquinas con windows 2000 solo retorna
Sub retornar()
dim rst as adodb.recordset
lssdato1 =" where a.distrito_id=45"
lsssql = "select a.con_contri,a.contribuyente,a.distrito,a.domicilio,a.sector,case when plano_id=0 then null else plano_id end as plano_id,cuadrante,cuadrante_x,cuadrante_y " & _
"from contribuyente a " & lssdato1 & _
"order by a.distrito desc,a.domicilio desc"
set rst=ncuGetRecordset(lsssql,0)
set grdLista.datasource=rst
set rst=nothing
End Sub
Private Function ncuGetRecordset(lsssql As String,lnnfilas as long) As ADODB.Recordset
Dim cnn As ADODB.Connection
cnn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=admcon;Data Source=master"
Dim rsdata As ADODB.Recordset
Set rsdata = New ADODB.Recordset
rsdata.MaxRecords =lnnfilas
rsdata.CursorLocation = adUseClient
rsdata.Open lsssql, lsuCnn, adOpenForwardOnly, adLockBatchOptimistic
Set ncuGetRecordset = rsdata
Set rsdata = Nothing
End Function
Gracias por la aclaración
He estado probando y lo que pasa es que el control MSHFLEXGRID no carga más de 2048 registros para este tipo de conexión, el recordset si recupera los registros que quiero
En la sentencia de la función
rsdata.MaxRecords =lnnfilas
Esto hace que el recordset retorna una cantidad de registros, por ejemplo para lnnfilas=100 el recordset retorna una máximo de 100 registros aun así la consulta retorne una cantidad mayor de registros
Solo quisiera saber como hago para que el control
MSHFLEXGRID soporte una cantidad mayor de registros
al asignarle el recordset
Esto te limita la cantidad de registros
rsdata.CursorLocation = adUseClient
set rst=ncuGetRecordset(lsssql,0)
set grdLista.datasource=rst
set rst=nothing
End Sub
Private Function ncuGetRecordset(lsssql As String,lnnfilas as long) As ADODB.Recordset
end sub
Hola acá llamas a la función que devuelve un recordset y después se lo pasas a la grilla. Por favor proba pasarlo de esta manera
set grdLista.datasource = ncuGetRecordset(lsssql,0)
Porque una vez yo hice algo parecido y me daba error.
Por favor si esto continua el problema.
Me podes enviar el form solo [email protected]
porque lo probé de distintas maneras y me anduvo bien (resolví el problema de 2049)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas