Avatar billede tanis13 Nybegynder
15. maj 2007 - 22:43 Der er 14 kommentarer og
1 løsning

Hent DATATYPE fra database

Hej

Hvordan er det muligt at hente datatypen fra et felt i sql-databasen?

Har prøvet mig frem med lidt af hver, men intet er lykkes.
Avatar billede arne_v Ekspert
15. maj 2007 - 22:48 #1
proev:

SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
Avatar billede w13 Novice
15. maj 2007 - 22:49 #2
Du mener, hvorvidt indholdet af feltet er tekst, tal, dato, ja/nej, osv.?

Jeg vil tro, du enten kan bruge:
  TypeName(indhold af felt)
  http://www.2biaz.dk/diverse/aspfunctions/detaljer/#typename

  eller VarType(indhold af felt)
  http://www.2biaz.dk/diverse/aspfunctions/detaljer/#vartype

Håber det hjælper dig. =)
Avatar billede tanis13 Nybegynder
15. maj 2007 - 22:53 #3
Kan godt være jeg har postet det forkert, men skal bruge det i php.

Men ja det er hvorvidt feltet "navn" er varchar, text, int eller lign i SQL.
Avatar billede arne_v Ekspert
15. maj 2007 - 23:03 #4
mit svar er ren SQL og kan bruges i ethvert sprog
Avatar billede tanis13 Nybegynder
15. maj 2007 - 23:05 #5
Hvordan vil du bruge det i en query ? kan ik lige se det for mig..
Avatar billede arne_v Ekspert
15. maj 2007 - 23:08 #6
det er en helt almindelig query ligesom alle andre
Avatar billede tanis13 Nybegynder
15. maj 2007 - 23:10 #7
"SELECT `id` DATA_TYPE FROM DB" ?
Avatar billede arne_v Ekspert
15. maj 2007 - 23:10 #8
$rs = mysql_query("SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS", $con) or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    print $row["TABLE_NAME"] . " " . $row["COLUMN_NAME"] . " " . $row["DATA_TYPE"] . "\n";
}
Avatar billede arne_v Ekspert
15. maj 2007 - 23:12 #9
eller maaske:

$rs = mysql_query("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=$tbl AND COLUMN_NAME=$fld", $con) or die(mysql_error());
$row = mysql_fetch_array($rs, MYSQL_ASSOC);
$typ = $row["DATA_TYPE"];
Avatar billede arne_v Ekspert
15. maj 2007 - 23:13 #10
du maa selv binde den sammen

og oops - med SQLServer er det naturligvis mssql_xxxxx fremfor mysql_xxxxx
Avatar billede tanis13 Nybegynder
15. maj 2007 - 23:33 #11
"SELECT DATA_TYPE FROM my_news WHERE COLUMN_NAME = $mycolumn" ?

Vil denne kunne hente datatypen ?
Avatar billede arne_v Ekspert
15. maj 2007 - 23:51 #12
ja

men jeg ville teste paa baade tabelnavn og kolonnenavn - hvis nu du havde to tabeller
med kolonner med samme navn
Avatar billede w13 Novice
15. november 2007 - 19:17 #13
Fandt du ud af noget her?
Avatar billede w13 Novice
07. august 2008 - 10:31 #14
Lukketid?
Avatar billede w13 Novice
05. september 2008 - 12:32 #15
Tak for point! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester