Foros del Web » Programando para Internet » ASP Clásico »

Identificación de clave primaria (urgente)

Estas en el tema de Identificación de clave primaria (urgente) en el foro de ASP Clásico en Foros del Web. Hola tengo el siguiente problema: Como puedo identificar la clave primaria de una tabla en ASP y quisiera saber como sacar los atributos del campo ...
  #1 (permalink)  
Antiguo 13/08/2002, 09:01
 
Fecha de Ingreso: marzo-2002
Mensajes: 30
Antigüedad: 23 años, 2 meses
Puntos: 0
Identificación de clave primaria (urgente)

Hola tengo el siguiente problema:
Como puedo identificar la clave primaria de una tabla en ASP y quisiera saber como sacar los atributos del campo de una tabla?
Muchas gracias
  #2 (permalink)  
Antiguo 13/08/2002, 13:37
Avatar de coriadavid  
Fecha de Ingreso: mayo-2002
Ubicación: Buenos Aires Argentina
Mensajes: 74
Antigüedad: 23 años
Puntos: 0
Re: Identificación de clave primaria (urgente)

A ver supongo que estaras haciendo una base de datos y supongo que las tablas estan siendo realizadas sobre access, cuando vos diseñas el aspecto logico de una Db, tenes que definir las tablas es lo que se llama la normalizacion de los datos, luego cada tabla debe llevar una clave, esa clave es el valor univoco que corresponde a ese dominio de datos, esa clave evitara la repeticion de los datos.

Te sugiero que leas algo sobre Diseño de base e datos.
:cantar:

David M. Coria.
Dolphin Network
  #3 (permalink)  
Antiguo 13/08/2002, 18:04
 
Fecha de Ingreso: mayo-2001
Mensajes: 452
Antigüedad: 24 años
Puntos: 1
Re: Identificación de clave primaria (urgente)

Con un openSchema sobre la conexion, mas o menos con este codigo:
'Agregado por Juan Arturo [email protected]
'Encuentra la llave primaria de una tabla dada
dim aPrimaryKeys
set rsX = conn.openSchema(adSchemaPrimaryKeys)

do while not rsX.eof
if (rsX("table_name") = sTableName) then
if sPrimaryKeyFieldName = "" then
sPrimaryKeyFieldName = rsX("column_name")
else
sPrimaryKeyFieldName = sPrimaryKeyFieldName & "," & rsX("column_name")
end if
end if
rsX.movenext
loop
rsX.close

if (sPrimaryKeyFieldName = "") and (bQuery = False) then
sSoWhat = "(<a title=""Editor de Tabla necesita al menos un campo de llave unica para diferenciar los registros. El campo llave para esta tabla no existe o no puede ser detectado automaticamente. TableEditoR usara el primer campo como llave. (Click sobre de imágen de la pagina en la columna Accion para editar el registro de cualquier forma)."">Entonces?</a>)"
if arrType(lConnID) = tedbDsn then
response.write "La Detección automatica de llaves primarias Automatic no es posible en conexiones DSN. " & sSoWhat & "<br><br>"
else
response.write "Esta tabla no tiene ninguna llave primaria. " & sSoWhat & "<br><br>"
end if
else
'response.write "Primary key(s): " & sPrimaryKeyFieldName & "<br><br>"
end if

'Set the primary key field to first field in the list by default
if sPrimaryKeyFieldName = "" then sPrimaryKeyFieldName = 0



y los valores constantes son:
'---- SchemaEnum Values ----
Const adSchemaTables = 20
Const adSchemaPrimaryKeys = 28
Const adSchemaIndexes = 12
const adSchemaViews = 23
Const adSchemaForeignKeys = 27
Const adSchemaProcedures = 16

Este codigo funciona bien (si tienes todas las variables claro), pero como comenta por alli, no es posible usarlos con DSN, solo con DSNLess.

Otra cosa mejor es que en CADA TABLA EL PRIMER CAMPO SEA EL PRIMARY KEY y entonces solo agarras el recordset.fields(0) y con eso ya tienes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.