| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | | 
| 
07-10-2006, 04:20:24
| | Un Nuevo Amigo | | Registrado: abr 2006 Posts: 14
| | identificar llave principal de una tabla por medio de ADOX saludos foro estoy haciendo un programa que hace consultas a una base de datos de sql y necesito saber como identifico la llave principal de una tabla por medio del ADOX, este es el codigo que estoy usando:
Dim nombretabla As String
Dim Ct1 As New ADOX.Catalog
Dim Tb As ADOX.Table
Dim Cl As ADOX.Column
Dim fila As Integer
Set Ct1.ActiveConnection = conexion
For Each Tb In Ct1.Tables
If Tb.Name = nombretabla Then
Grid1.Cols = numtablas + 1
Grid1.Col = columna
Grid1.Row = 0
Grid1.Text = nombretabla
For Each Cl In Tb.Columns <--------------------
Grid1.AddItem Row
Grid1.Row = fila
Grid1.Text = Cl.Name <------------------
fila = fila + 1
Next Cl
fila = 1
End If
Next Tb
el codigo si funciona para lo que estoy haciendo (vacia los campos de las tablas), pero me falta identificar la llave principal, en donde se encuentran las flechas hay unos metodos "KEYS" y "KEY", no se si estos puedan servir para eso, si es asi, ¿como los puedo usar para sacar la llave principal de la tabla?,
cualquier idea, o ejemplo, o tutorial, o referencia que me puedan facilitar se los voy a agradecer mucho. | 
07-10-2006, 12:26:57
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Hola VGM,
Por si no se te ha ocurrido hacerlo, puedes poner un msgbox a los campos de llave o pasarlos a una varibale para ver lo que contiene, porque a lo mejor simplemente tiene el valor de verdadero y falso y te puedes hacer una idea de como funcionan esos metodos.
Un saludo,
Juanma | 
08-10-2006, 04:09:51
| | Un Nuevo Amigo | | Registrado: abr 2006 Posts: 14
| | saludos foro, saludos netman, gracias por esta idea, no se me habia ocurrido, lo voy a intentar, efectivamente hice algunas pruebas trasteando con el adox y solo me sale verdadero o falso,
como estoy vaciando los campos aun grid necesito verificar cual es llave principal, hice otra prueba con "variable.key.count y tambien funciona pero me cuenta las llaves que hay en la tabla,
pondria un msgbox si supiera cuales son las llaves, y la cosa es identificar cuales son esas llaves para que vayan marcadas en rojo en el grid,
seguire trasteando con el adox, se que ando cerca pero no le he dado,
cualquier comentario o idea sera bienvenida netman,
gracias por la atencion que le den al presente post :smt001 | 
08-10-2006, 21:19:05
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Hola VGM,
Creo que es tu día de suerte, he encontrado por mi ordenador este código y puede que te sirva para preguntar por la clave en la base de datos. Código: Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("\db.mdb"))
set rs = conn.execute("select * from tabla1")
set catalogo = CreateObject("ADOX.Catalog")
catalogo.ActiveConnection = conn
set tbl = catalogo.Tables("tabla1")
For Each indx In tbl.Indexes
If indx.PrimaryKey = True Then
For Each col In indx.columns
id = col.Name
Next
End If
Next Un saludo,
Juanma | 
09-10-2006, 05:31:04
| | Un Nuevo Amigo | | Registrado: abr 2006 Posts: 14
| | saludos foro, saludos netman, el codigo que hiciste favor de proporcionarme es estupendo, esta muy bien, eso era lo que andaba buscando, identificar la clave principal de la tabla con el metodo indexes,
evaluando si es primarykey y luego que meta el nombre del campo en la variable, perfecto, no hay mas que decir, esto me cae de perlas, voy a trastear
con este codigo para adecuarlo a las variables que estoy manejando, pero esta solucionado,
muchisimas gracias por la ayuda, agradezco la atencion que recibi de parte tuya y de este foro, y espero seguir contando con su apoyo en posteriores post,
gracias.. :smt001 | 
09-10-2006, 10:01:47
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | De nada,
Ha sido un placer.
Un saludo,
Juanma | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 20:30:41.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |