02. december 2005 - 13:06
Der er
17 kommentarer og 1 løsning
Længde af felt i database
Hej! jeg ønsker at ændre nogle feltnavne i en tabel, til det formål skal jeg kende længde af det aktuelle felt! string sql = "ALTER TABLE " + tablename + " CHANGE COLUMN " + fieldname + " " + newname +" CHAR(" + lenght + ");"; hvordan får jeg min lenght ???
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
02. december 2005 - 14:26
#1
Altså feltets makslængde, eller data'ens længde ?
03. december 2005 - 05:17
#2
hm> ALTER TABLE CHAR
03. december 2005 - 05:18
#3
testpilot> Prøv DESCRIBE tablename
03. december 2005 - 09:16
#4
Det er feltets længde, som jeg angav da jeg oprettede den aktuelle tabel!
03. december 2005 - 14:17
#5
jeps, det virker Arne_v send et svar
03. december 2005 - 15:17
#6
Kender i en måde jeg kan gører det i Access også
03. december 2005 - 15:26
#7
prøv SELECT TABLE_NAME,COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS måske virker den i Access måske virker den også i MySQL det er ANSI måden at gøre det på ellers tror jeg at vi skal over i noget ADO eller DAO specifikt for at gøre det i Access og svar
03. december 2005 - 15:29
#8
okay, jeg vil prøve det! Describe table, virker fint i MySQL
03. december 2005 - 15:30
#9
hvad gør den egentlig, skal den ikke vide hvilken tabel som den skal finde tingene på
03. december 2005 - 15:32
#10
DESCRIBE har virket i MySQL siden ruder konge var rude knægt nyere versioner skulle være ANSI kompatible hvis du kun skal have for en tabelÆ SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='tabelnavn'
03. december 2005 - 15:35
#11
hvad er information_schema
03. december 2005 - 15:44
#12
alle databaser har deres speciefikke måde at hente oplysninger om tabeller og felter på ANSI standaqrden siger at databaser bør have denne logiske måde at gære det på INFORMATION_SCHEMA er et fiktivt sted at hente denne information via SQL sætninger en speciel form for VIEW
03. december 2005 - 15:50
#13
okay! men det kan jeg heller ikke få til at virke når jeg spørger ned i min Access database!
03. december 2005 - 17:01
#14
hvilket sprog er din app lavet i ?
03. december 2005 - 19:58
#15
C# string sql = "SELECT COLUMN_NAME,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME= '" + table + "'"; OpenConnection(); IDataReader read = GetSQLResult(sql); string lenght = ""; if(read != null) { while(read.Read()) { if(read[0].ToString() == "IP") { lenght = read[1].ToString(); lenght = lenght.Remove(0, lenght.IndexOf("(") +1 ); lenght = lenght.Remove(lenght.IndexOf(")"), 1); break; } } GetSQLResult ::: public override IDataReader GetSQLResult(string sql) { try { OleDbCommand myCommand = new OleDbCommand(sql, cn); OleDbDataReader myReader = myCommand.ExecuteReader(); return myReader; } catch(Exception ex) { WriteLog("Failed: " + ex.Message); return null; } }
03. december 2005 - 20:06
#16
så tror jeg at du er nødt til at hente dem ud med GetOleDbSchemaTable metoden
09. december 2005 - 08:10
#17
hvordan skal jeg evt. gører det med Access databasen, ved brug af GetOleDbSchemaTable
09. december 2005 - 14:44
#18
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb"); con.Open(); string[] criteria = {null, null, null, "TABLE" }; DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, criteria ); // hent info ud af dt con.Close();
Computerworld tilbyder specialiserede kurser i database-management