sqlsrv_field_metadata
Recupera los metadatos de los campos de una instrucción preparada. Para obtener información acerca de cómo preparar una instrucción, vea sqlsrv_query o sqlsrv_prepare. Tenga en cuenta que sqlsrv_field_metadata se puede llamar en cualquier instrucción preparada, antes o después de la ejecución.
Sintaxis
sqlsrv_field_metadata( resource $stmt)
Parámetros
$stmt: un recurso de instrucción para el que se buscan los metadatos de campo.
Valor devuelto
Una array de matrices o false. La matriz consta de una matriz para cada campo en el conjunto de resultados. Cada submatriz tiene las claves que se describen en la tabla siguiente. Si se produce un error al recuperar metadatos de campo, se devuelve false.
Clave | Descripción |
---|---|
Nombre |
Nombre de la columna a la que corresponde el campo. |
Tipo |
Valor numérico que corresponde a un tipo de SQL. |
Tamaño |
Número de caracteres para campos de tipo de caracteres (char(n), Varchar(n), nchar(n), nvarchar(n), XML). Número de bytes para campos de tipo binario (binary(n), varbinary(n), tipo definido por el usuario). NULL para otros tipos de datos de SQL Server. |
Precisión |
Precisión para tipos de precisión de variable (real, numeric, decimal, datetime2, datetimeoffset y time); NULL para otros tipos de datos de SQL Server. |
Escala |
La escala para tipos de escala de variable (numeric, decimal, datetime2, datetimeoffset y time). NULL para otros tipos de datos de SQL Server. |
Aceptación de valores NULL |
Un valor enumerado que indica si la columna acepta valores NULL (SQLSRV_NULLABLE_YES), si la columna no acepta valores NULL (SQLSRV_NULLABLE_NO) o no se sabe si la columna acepta valores NULL (SQLSRV_NULLABLE_UNKNOWN). |
En la tabla siguiente se ofrece más información sobre las claves de cada submatriz; consulte la documentación de SQL Server para obtener más información sobre estos tipos.
Tipo de datos de SQL Server 2008 | Tipo | Precisión mín/máx | Escala mín/máx | Tamaño |
---|---|---|---|---|
bigint |
-5 |
8 |
||
binary |
-2 |
0 < n < 8000 1 |
||
bit |
-7 |
|||
char |
1 |
0 < n < 8000 1 |
||
date |
91 |
10/10 |
0/0 |
|
datetime |
93 |
23/23 |
3/3 |
|
datetime2 |
93 |
19/27 |
0/7 |
|
datetimeoffset |
-155 |
26/34 |
0/7 |
|
decimal |
3 |
1/38 |
0/valor de precisión |
|
float |
6 |
4/8 |
||
image |
-4 |
2 GB |
||
int |
4 |
|||
money |
3 |
19/19 |
4/4 |
|
nchar |
-8 |
0 < n < 4000 1 |
||
ntext |
-10 |
1 GB |
||
numeric |
2 |
1/38 |
0/valor de precisión |
|
nvarchar |
-9 |
0 < n < 4000 1 |
||
real |
7 |
4/4 |
||
smalldatetime |
93 |
16/16 |
0/0 |
|
smallint |
5 |
2 bytes |
||
smallmoney |
3 |
10/10 |
4/4 |
|
text |
-1 |
2 GB |
||
time |
-154 |
8/16 |
0/7 |
|
timestamp |
-2 |
8 bytes |
||
tinyint |
-6 |
1 byte |
||
udt |
-151 |
variable |
||
uniqueidentifier |
-11 |
16 |
||
varbinary |
-3 |
0 < n < 8000 1 |
||
varchar |
12 |
0 < n < 8000 1 |
||
xml |
-152 |
0 |
(1) Cero (0) indica que se admite el tamaño máximo.
La clave con valores nulos permitidos puede ser sí o no.
Ejemplo
En el ejemplo siguiente se crea un recurso de instrucción y, a continuación, se recuperan y se muestran los metadatos de campo. En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.
<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Prepare the statement. */
$tsql = "SELECT ReviewerName, Comments FROM Production.ProductReview";
$stmt = sqlsrv_prepare( $conn, $tsql);
/* Get and display field metadata. */
foreach( sqlsrv_field_metadata( $stmt) as $fieldMetadata)
{
foreach( $fieldMetadata as $name => $value)
{
echo "$name: $value\n";
}
echo "\n";
}
/* Note: sqlsrv_field_metadata can be called on any statement
resource, pre- or post-execution. */
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
Vea también
Conceptos
Constantes SQLSRV
Acerca de ejemplos de código en la documentación