obtener informaci贸n de un campo enum de MySQL

halverto
09 de Octubre del 2004
Hola a todos, estoy creando un formulario con Visual Basic que a traves de ODBC conecta con una base de datos MySQL, y quisiera poder obtener la lista de valores posibles de un campo de tipo enum o set.

¿Como los puedo listar?

Gracias de antemano

gpardo
09 de Octubre del 2004
S贸lo transcribo un fragmento de c贸digo que me pas贸 el mismo halverto que inici贸 el hilo:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ejemplo que utilize para un campo enum que contenia todas lasprovincias espa帽olas:

SQL para generar la tabla que utiliza el ejemplo:
CREATE TABLE `clientes`
( `codigo` smallint(6) NOT NULL default '0',
`nombre` varchar(25) NOT NULL default '',
`apellidos` varchar(25) NOT NULL default '',
`direccion` varchar(100) NOT NULL default '',
`provincia`enum('Albacete',
'Alicante','Almeria','Asturis','Badajoz','Baleares','Barcelona',
'Burgos','Caceres','Cadiz','Cantabria','Castellon','Ceuta',
'CiudadReal','Cordoba','Cuenca','Gerona','Granada','Guadalajara',
'Guipuzcua','Huelva','Huesca','Jaen','La Corunia','La rioja',
'Las almas','Leon','LeridaNavarra','Orense','Palencia','Pontevedra',
'Salamanca','Santa Cruz deTenerife','Segovia','Sevilla','Tarragona',
'Teruel','Toledo','Valencia','Valladolid','Vizcaya','Zamora','Zaragoza')
default NULL,
PRIMARY KEY (`codigo`))
TYPE=MyISAM;

<?php
//Datos de conexion
$host = "localhost";
$db = "test";
$usuario = "root";
$password = "";
//Conexion con la base de datos
$cn = mysql_pconnect($host, $usuario, $password) ortrigger_error(mysql_error(),E_USER_ERROR);
//Consulta que nos devuelve los valores posibles para un campo enum delcampo provincias en la tabla test
$query_provincias = "DESCRIBE clientes provincia";
mysql_select_db($db, $cn);
$rs_provincias = mysql_query($query_provincias, $cn) or die(mysql_error());
//Para ver lo que se nos devuelve, esto es lo que introduciras en la base dedatos
if ($Submit){
echo "Provincia seleccionada: $provincias";
}
?>

<form name="form1" method="post" action="">
<?php
//Obtenemos todos los valores posibles del campo enum en un campo de tiposelect
while ($ligne = mysql_fetch_array($rs_provincias)) {
extract($ligne, EXTR_PREFIX_ALL, "IN");
if (substr($IN_Type,0,4)=='enum'){
$liste = substr($IN_Type,5,strlen($IN_Type));
$liste = substr($liste,0,(strlen($liste)-2));
$enums = explode(',',$liste);
if (sizeof($enums)>0){
echo "<select name='provincias' >n";
for ($i=0; $i<sizeof($enums);$i++){
$elem = strtr($enums[$i],"'"," ");
echo "<option value='".$elem."'>".$elem."</option>n";
}
echo "</select>";
}
}
}
?>