elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  vb6 y sql server
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: vb6 y sql server  (Leído 1,983 veces)
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
vb6 y sql server
« en: 20 Junio 2007, 16:21 pm »

que tal, despues de tanto tiempo, dije que volvia y volvi

mi duda es la siguiente
estoy haciendo una aplicacion en vb6 usando sql server y queiro listar las db, utilizo este codigo:

Código:

rst.Open "SELECT name FROM master.dbo.sysdatabases", cnn, adOpenDynamic, adLockOptimistic
With cbo_db
        .Clear
        For Each tField In rst.Fields
            .AddItem tField.Name
        Next
        .ListIndex = 0
    End With
rst.Close



cbo_db es un combo, y lo unico que me lista es la palabra "name", como hago para que me liste los datos de la columna name?
me srian de gran ayuda ya que estoy en el trabajo ahora xd

saludos y gracias


En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: vb6 y sql server
« Respuesta #1 en: 20 Junio 2007, 19:28 pm »

me parece que tendías que abrir la tabla "sysdatabase", y listar los registros que contiene.

Código:
Option Explicit

Private Sub Form_Load()
    Dim BD As Connection
    Dim Tb As Recordset

    Dim conexion As String
   
    Set BD = New Connection
   
    conexion = "Provider=SQLOLEDB.1;" & _
               "Persist Security Info=False;" & _
               "User ID= SA;" & _
               "pwd=;" & _
               "Initial Catalog= Master;" & _
               "Data Source=Servidor"

    On Local Error Resume Next
    BD.Open conexion
    If Err Then
        MsgBox Err.Number & vbCrLf & Err.Description
        Exit Sub
    End If
    On Local Error GoTo 0
   
    Set Tb = New Recordset
    Tb.Open "SELECT Name FROM Sysdatabases", BD
    Combo1.Clear
    While Not Tb.EOF
        Combo1.AddItem Tb!Name
        Tb.movenext
    Wend
    Tb.Close
    BD.Close

    set Tb = nothing
    set BD = nothing
End Sub


« Última modificación: 20 Junio 2007, 19:42 pm por CeLaYa » En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: vb6 y sql server
« Respuesta #2 en: 21 Junio 2007, 15:11 pm »

graciaspor el codigo, lo probe y me sigue dando el mismo resultado,...

lo que quiero hacer es esto

---------------------
| Numero
| uno
| dos
| tre
| cuatro
| cinco
| seis
 --------------------

Código:
Dim tField As ADODB.Field
 
rst.Open "select pub_codcontrato from vsp_contrcue", cnn, adOpenDynamic, adLockOptimistic

        combo1.Clear
        For Each tField In rst.Fields
        combo1.AddItem tField.Name
        Next
        combo1.ListIndex = 0

rst.Close


lo que me muestra con eso no son los "uno", "dos", "tres", etc
me muestra el nombre del campo "pub_codcontrato"

si alguien me dice como mostrar los datos y no el nombre del campo se lo agradeceria

bye
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: vb6 y sql server
« Respuesta #3 en: 21 Junio 2007, 16:50 pm »

listo!!
ya lo descubri

gracias de todos modos

bye bye
nos vemo en ela p`roxima
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: vb6 y sql server
« Respuesta #4 en: 21 Junio 2007, 17:12 pm »

para el que no lo sepa es así... xD

Código:
tField!Name

o

tfield.fields("Name")  'se puede agregar .value
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: vb6 y sql server
« Respuesta #5 en: 21 Junio 2007, 20:12 pm »

bueno sigo...
con respecto a la forma que yo use.. es la siguiente:

Código:
While frm1.rst.EOF
            frm1.rst.MoveFirst
            txt_dimccodigo = frm1.rst(0)
            txt_dimcdescripcion = frm1.rst(1)
            txt_dimcpadre = frm1.rst(2)
            txt_dimccuenta = frm1.rst(3)
            txt_dimccontrato = frm1.rst(4)
            txt_dimcconcepto = frm1.rst(5)
            txt_dimcproceso = frm1.rst(6)
       
            frm1.rst.MoveNext
        Wend

y con eso veo los datos pero solo de la primera fila

osea...

-------------------------
| Numero | Letra
| uno         |  a       |
| dos         |  b       |
| tre          |  c       |
| cuatro     |  d       |
| cinco       |  e       |
| seis         |   f      |
 ----------------------

con ese codigo recibiria solo el dato numero "uno" y el dato letra "a"

la pregunta es... como veo las otras filas?
si alguien sabe... que me pase la vos

saludos
bye


#Edit: gracias Hans el Topo, como siempre respondiendo
« Última modificación: 21 Junio 2007, 20:14 pm por elmaro » En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: vb6 y sql server
« Respuesta #6 en: 22 Junio 2007, 02:06 am »

rst.movenext

el movefirst nose para que lo pones puesto que te envia al primer registro todo el rato...

los bucles de lectura de un recordset suelen ser así

Código:
while not rst.eof
    'código que quieras para ese registro

    'avanzamos registro
    rst.movenext
wend



Citar
#Edit: gracias Hans el Topo, como siempre respondiendo

respondo cuando tengo tiempo y me apetece xD la mayoría de estos temas estan resueltos ya y por eso no se suelen responder pero weno digamos que hoy hice una excepción xD
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: vb6 y sql server
« Respuesta #7 en: 22 Junio 2007, 16:10 pm »

barbaro, vamos mejorando
yo necesito avanzar en los registros, lo que ahora uso es esto:
voy mejorando en este tema :P

para adelantar :

Código:
If Not frm1.rst.EOF Then
txt_dimccodigo = frm1.rst(0)
txt_dimcdescripcion = frm1.rst(1)
txt_dimcpadre = frm1.rst(2)
txt_dimccuenta = frm1.rst(3)
txt_dimccontrato = frm1.rst(4)
txt_dimcconcepto = frm1.rst(5)
txt_dimcproceso = frm1.rst(6)
frm1.rst.MoveNext
End If

y para retroceder:

Código:
If Not frm1.rst.EOF Then
frm1.rst.MovePrevious
txt_dimccodigo = frm1.rst(0)
txt_dimcdescripcion = frm1.rst(1)
txt_dimcpadre = frm1.rst(2)
txt_dimccuenta = frm1.rst(3)
txt_dimccontrato = frm1.rst(4)
txt_dimcconcepto = frm1.rst(5)
txt_dimcproceso = frm1.rst(6)
End If

el tema que para retroceder no funciona, osea... retrocede el registro pero no lo carga en los textbox

hace rato largo programo en vb y estoy verdisimo con vb y sql, por eso pregunto cosas que yo se que no son dificiles

gracias again Hans el Topo :)

bye...
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: vb6 y sql server
« Respuesta #8 en: 22 Junio 2007, 16:51 pm »

con el if solo recorres un registro... el while recorre todos...

y el avance o retroceso va al final, ya que si retroces y no hay nada que leer intentas leer vacio... por algo tiene esa estructura el bucle

Código:
'hacia adelante
'vamos al primero
rst.movefirst
'mientras existan registros
while not rst.eof
    'código que quieras para ese registro

    'avanzamos registro
    rst.movenext
wend

Código:
'hacia atrás
'vamos al último
rst.movelast
'mientras existan registros
while not rst.BOF
    'código que quieras para ese registro

    'avanzamos registro
    rst.MovePrevious
wend


Citar
BOF indica que la posición del registro actual está antes del primer registro de un objeto Recordset.


EOF indica que la posición del registro actual está después del último registro de un objeto Recordset.


copipasteo la ayuda...

Citar
Métodos MoveFirst, MoveLast, MoveNext y MovePrevious
     

Pasa al primer, último, siguiente o anterior registro de un objeto Recordset especificado y lo convierte en el registro actual.

Sintaxis

recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}

Comentarios

Utilice el método MoveFirst para mover la posición del registro actual al primer registro del Recorset.

Utilice el método MoveLast para mover la posición del registro actual al último registro del Recorset. El objeto Recordset tiene que aceptar marcadores o movimiento hacia atrás; si no, la llamada al método generará un error.

Utilice el método MoveNext para mover la posición del registro actual un registro hacia delante (hacia el final del Recordset). Si el último registro es el registro actual y llama al método MoveNext, ADO establece el registro actual a la posición posterior al último registro del Recordset (EOF es True). El intento de avanzar cuando la propiedad EOF ya sea True genera un error.

Utilice el método MovePrevious para mover la posición del registro actual un registro hacia atrás (hacia el principio del recordset). El objeto Recordset tiene que aceptar marcadores o movimiento hacia atrás; si no, la llamada al método generará un error. Si el primer registro es el registro actual y llama al método MovePrevious, ADO establece el registro actual a la posición anterior al primer registro del recordset (BOF es True). El intento de retroceder cuando la propiedad BOF ya sea True genera un error. Si el objeto Recordset no acepta marcadores o movimiento hacia atrás, el método MovePrevious generará un error.

Si el recordset es de tipo Forward-only y quiere recorrerlo hacia adelante y hacia atrás, puede utilizar la propiedad CacheSize para crear una caché de registros que acepte el movimiento hacia atrás mediante el método Move. Como los registros de la caché están guardados en la memoria, tiene que evitar guardar en la caché más registros de los estrictamente necesarios. Puede invocar el método MoveFirst en un objeto Recordset de tipo Forward-only; si lo hace, el proveedor vuelve a ejecutar el comando que generó el objeto Recordset.
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: vb6 y sql server
« Respuesta #9 en: 22 Junio 2007, 17:35 pm »

chabon!!!

muchas gracias por la data, por la ayuda

claro, con IF solo leo un registro, y eso era lo que queria, no queria leer todos, ya que tengo que mostrar uno solo, y que el usuario valla viendo uno a uno como el quiera

te agradezco muchisimo por tu tiempo y por la info que pusiste al final, me sirvio de mucho

hasta la proxima
bye....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines