13. november 2002 - 16:54Der er
6 kommentarer og 1 løsning
ADOX - tilføje kolone til en eksisterende tabel
Jeg leder efter et stykke kode der kan tilføje en kolone til en eksisterende tabel. Jeg har roddet med dette de sidste par timer og er ved at være rigtig godt træt af det ... så derfor de "mange" point :)
Jeg har prøvet med noget ala det her:
Dim objADODBConnection Set objADODBConnection = Server.CreateObject("ADODB.Connection") objADODBConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathToDB & "database.mdb"
Dim objADOXDatabase Set objADOXDatabase = Server.CreateObject("ADOX.Catalog") objADOXDatabase.ActiveConnection = objADODBConnection
Dim objColumn Set objColumn = Server.CreateObject("ADOX.Column")
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg vil gætte på det fordi den ikke kender adVarWChar konstanten, jeg har prøvet scriptet og får denne fejl:
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
Jeg har prøvet at lave et stykke kode som skulle finde ud af hvilken værdi der var tal om. Ved at ligge fra olp til 256 kolonner i tabelle mius dem som måtte fejle. Med type fra 0->255. Så skulle iden være man kunne åbne tabellen og se hvilekn kolonne der var af typen tekst/text og dermed havde tallet. Det har vist sig fra 22->255 er alle blevet af typen tekst, samt 0,1 og 15.
Her er koden som jeg prøvede med:
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> Dim objADODBConnection Set objADODBConnection = Server.CreateObject("ADODB.Connection") objADODBConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathToDB & "database.mdb"
Dim objADOXDatabase Set objADOXDatabase = Server.CreateObject("ADOX.Catalog") objADOXDatabase.ActiveConnection = objADODBConnection
on error resume next for i = 0 to 255 Dim objColumn Set objColumn = Server.CreateObject("ADOX.Column")
objColumn.Name = "NyKolone" & i objColumn.Type = i 'adVarWChar objColumn.Properties.Refresh objColumn.DefinedSize = 255 objColumn.Attributes = 3 'adColFixed + adColNullable
Set objColumn.ParentCatalog = objADOXDatabase
objADOXDatabase.Tables("EksisterendeTabel").Columns.Append objColumn Set objColumn = Nothing next
objADODBConnection.Close Set objADOXDatabase = Nothing Set objADODBConnection = Nothing
Den kender ikke konstanten ved dig fordi du mangler sætningen <!-- METADATA TYPE="typelib" FILE="C:\Program Files\Common Files\System\ado\msado15.dll" -->
Hmm, det gjorde min heller ikke ... den fejlede når jeg prøvede på at sætte DefindedSize el. Attributes bagefter ... men det var pga. objColumn.Properties.Refresh
Tænk sig at jeg kunne lære nr. 2 på exp.dk noget ;-) hehe
Synes godt om
Ny brugerNybegynder
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.