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
| |||
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 |
| |||
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. |