Especificación: | CLI de DB2 2.1 | ODBC 1.0 |
|
SQLPrimaryKeys() devuelve una lista de nombres de columna que abarcan la clave primaria de una tabla. La información se devuelve en un conjunto resultante de SQL, que se puede recuperar utilizando las mismas funciones que se utilizan para procesar un conjunto resultante generado por una consulta. No se tienen en cuenta los parámetros CatalogName, NameLength1, SchemaName y NameLength2. Las columnas 1, 2 y 6 del conjunto resultante devuelto son siempre una serie de longitud cero.
Sintaxis
SQLRETURN SQLPrimaryKeys ( SQLHSTMT StatementHandle, /* hstmt */ SQLCHAR FAR *CatalogName, /* szCatalogName */ SQLSMALLINT NameLength1, /* cbCatalogName */ SQLCHAR FAR *SchemaName, /* szSchemaName */ SQLSMALLINT NameLength2, /* cbSchemaName */ SQLCHAR FAR *TableName, /* szTableName */ SQLSMALLINT NameLength3); /* cbTableName */
Argumentos de la función
Tabla 76. Argumentos de SQLPrimaryKeys
Tipo de datos | Argumento | Uso | Descripción |
---|---|---|---|
SQLHSTMT | StatementHandle | entrada | Descriptor de contexto de sentencia. |
SQLCHAR* | CatalogName | entrada | Calificador de catálogo de un nombre de tabla que consta de tres
partes.
DB2 Everyplace no tiene en cuenta este campo. |
SQLSMALLINT | NameLength1 | entrada | Longitud de CatalogName. DB2 Everyplace no tiene en cuenta este campo. |
SQLCHAR* | SchemaName | entrada | Calificador de esquema del nombre de tabla. DB2 Everyplace no tiene en cuenta este campo. |
SQLSMALLINT | NameLength2 | entrada | Longitud de SchemaName. DB2 Everyplace no tiene en cuenta este campo. |
SQLCHAR* | TableName | entrada | Nombre de tabla. |
SQLSMALLINT | NameLength3 | entrada | Longitud de TableName. |
Uso
SQLPrimaryKeys() devuelve las columnas de clave primaria de una tabla individual. No se pueden utilizar patrones de búsqueda para especificar el nombre de tabla.
Si la tabla especificada no contiene una clave primaria, se devuelve un conjunto resultante vacío.
Las llamadas a SQLPrimaryKeys() se correlacionan, en muchos casos, formando consultas complejas y caras sobre el catálogo del sistema.
Aunque en futuros releases se pueden añadir nuevas columnas y modificarse los nombres de las columnas existentes, la posición de las columnas actuales no cambia.
El conjunto resultante contiene esta columnas ordenadas por TABLE_NAME y ORDINAL_POSITION
Los nombres de columna utilizados por DB2 CLI/ODBC siguen el estilo de especificación de X/Open CLI CAE.
Códigos de retorno
Diagnósticos
Tabla 77. SQLSTATE de SQLPrimaryKey
SQLSTATE | Descripción | Explicación |
---|---|---|
24000 | Estado no válido del cursor. | Ya hay un cursor abierto para el descriptor de contexto de sentencia. |
40003 08S01 | Error en el enlace de comunicaciones. | El enlace de comunicaciones entre la aplicación y la fuente de datos se interrumpió antes de finalizar la función. |
HY001 | Error de asignación de memoria. | CLI de DB2 no puede asignar la memoria necesaria para ejecutar o finalizar la función. |
HY010 | Error de secuencia de función. | Se llama a la función mientras se produce una operación de datos en ejecución (SQLPrepare() o SQLExecDirect()). |
HY014 | No hay más descriptores de contexto. | CLI de DB2 no puede asignar un descriptor de contexto debido a recursos internos. |
HY090 | Longitud no válida de la serie de caracteres o del almacenamiento intermedio. | El valor de uno de los argumentos de longitud de nombre es menor que 0, pero no igual a SQL_NTS. |
Restricciones
Utilice las llamadas a SQLPrimaryKeys() con moderación y guarde los resultados en lugar de repetir llamadas.
Consulta relacionada