Avatar billede bernhof Nybegynder
15. november 2001 - 14:51 Der er 22 kommentarer og
2 løsninger

ADODB: OpenSchema

Hej...

Jeg sidder her med en Access Database og tabellen \"tblVarer\", hvis felter jeg henter via metoden OpenSchema.
Jeg har en ADODB.Connection, \"CONN\" og et ADODB.Recordset, \"RS\".

Jeg kunne godt tænke mig at få disse felter sorteret i samme rækkefølge, som de vises i Access. Altså først vare_ID, så vare_titel osv.

Mine spørgsmål:
1) Hvordan får jeg felterne udleveret som beskrevet herover?
2) I øjeblikket er felterne \"sorteret\" i en tilsyneladende tilfældig rækkefølge. Hvad er mønsteret for den?
3) Kan man i det hele taget sortere felterne, hvis man henter dem med OpenSchema?

Mvh. Mikkel
Avatar billede bernhof Nybegynder
15. november 2001 - 14:53 #1
Altså koden er:

Dim RS As ADODB.Recordset
Set RS = CONN.OpenSchema(adSchemaColumns)
Avatar billede terry Ekspert
15. november 2001 - 15:00 #2
http://www.microsoft.com/data/ado/
Then select ADO Code EXAMPLES. >
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadocodeexamples.asp

Here you will find quite a bit of information about the OpenSchema method. As far as I can see you CAN NOT sort the recordset but an idea was to Make a new table and then write the infromation from the OpenSchema recordset into th enew tabel then you can sort it as you want.
You need to delete it each time you loop through OpenSchema
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:02 #3
Sorteringen:

COLUMNS Rowset
GUID: DBSCHEMA_COLUMNS

Number of restriction columns: 4

Restriction columns: TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME

Default sort order: TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME

Description: The COLUMNS rowset identifies the columns of tables (including views) defined in the catalog that are accessible to a given user.


Jeg kan ikke umiddelbart finde nogen dokumentation på, om det kan lade sig gøre at sortere dem anderledes.
Avatar billede bernhof Nybegynder
15. november 2001 - 15:32 #4
OK, men jeg er ikke helt sikker på at jeg forstår, hvad du skriver...

Set RS = CONN.OpenSchema(adSchemaColumns, [Restrictions])

er det disse restrictions jeg skal gøre brug af? det ser det nemlig ud til at nr. 2 eksempel gør på: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadocodeexamplesinvisualbasic.asp (under OpenSchema Method)

Der står:

Set rstSchema = Cnxn2.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, \"VIEW\"))

Men der gør de jo også brug af en anden QueryType, men er jeg på rette spor?
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:35 #5
De restrictions, du sætter op, afgrænser de poster, du får tilbage i recordsettet. De sorterer dem ikke.
Avatar billede terry Ekspert
15. november 2001 - 15:39 #6
mikbj>As I have said, I think you will need to write the information to a table(recordset) and sort them yourself.
Avatar billede terry Ekspert
15. november 2001 - 15:39 #7
What is happening! I have written a commentand it isnt shown!!
Avatar billede terry Ekspert
15. november 2001 - 15:40 #8
Oh, now it is!
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:42 #9
OTOH:

private sub Command1_click
  dim cDT as clsDatoHåndtering
  set cDT = new clsdatohåndtering
  cDT.ShortDateFormat = \'yyyy/mm/dd\'
  set cDT = nothing
end sub
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:43 #10
Sorry - forkert spørgsmål
Avatar billede bernhof Nybegynder
15. november 2001 - 15:45 #11
benny.tordrup > ok, men hvordan bruger jeg disse restrictions? hvad er meningen med sætningen jeg skrev ovenfor (fra Microsofts hjemmeside)?

terry > ok.. hvordan kan jeg gøre dette?
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:47 #12
set rstSchema = cnn.OpenSchema(adSchemaColumns, array(Empty, Empty, \"tblVarer\", Empty))
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:47 #13
Det skulle efter hvad jeg kan udlede give dig felterne i tblVarer
Avatar billede bernhof Nybegynder
15. november 2001 - 15:50 #14
benny > Okay! nu forstår jeg! :) Takker!
Avatar billede terry Ekspert
15. november 2001 - 15:52 #15
mikbij>Make a tablel in your Access database withthe information you are interested in seeing.
For example: TableName, FieldName, PrimaryKey just before you start looping through rstSchema delete all records from the table. Then while you are looping through rstSchema you add the fields to the new table which yoú are interested in. If you loop thorough Indexes then you need to make an update for the tableName,fieldName.

Does that explain it?
Avatar billede bernhof Nybegynder
15. november 2001 - 15:55 #16
fino .. jeg forstår! den må jeg lige sidde og lege lidt med. Svarer snarest muligt!
Avatar billede bernhof Nybegynder
15. november 2001 - 15:56 #17
forresten lige tilbage til sp.mål nr. 1:

kan jeg på en måde få kolonnerne serveret i den rækkefølge de vises i Access?
Avatar billede bennytordrup Nybegynder
15. november 2001 - 15:58 #18
Så skal du gøre som terry anviser og sørge for at få ORDINAL_POSITION med
Avatar billede bernhof Nybegynder
15. november 2001 - 16:02 #19
ok tak! findes der forresten en liste over alle informationer man kan hente vha. OpenSchema -- altså ligesom ORDINAL_POSITION, TABLE_NAME, COLUMN_NAME, PRIMARY_KEY osv...?
Avatar billede terry Ekspert
15. november 2001 - 18:14 #20
I have a book ADO 2.6 Programmers Reference (WROX) it has it all! I would also think that you could find most thngs you need form those links I gave.
Avatar billede bennytordrup Nybegynder
15. november 2001 - 20:22 #21
Du kan også finde den i MDAC SDK, som er en del af Microsoft Platform SDK. Hvis du har e-mail, kan jeg maile dig en liste over de informationer, som han hentes for OpenSchema, adSchemaColumns (det er i tabelformat, så det virker ikke så godt her.
Avatar billede bernhof Nybegynder
16. november 2001 - 15:49 #22
benny > du må meget gerne sende listen til mikkelbj@hotmail.com .
Mange tak! :)
Avatar billede bernhof Nybegynder
16. november 2001 - 16:46 #23
Tak for mailen, benny, og mange tak for hjælpen, begge to -- endnu engang! :)

111 point til deling, Mvh. Mikkel
Avatar billede bennytordrup Nybegynder
16. november 2001 - 23:58 #24
Takker... Den e-mail, du modtog fra, er fra arbejde - besvares ikke weekends.
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
Kurser inden for grundlæggende programmering

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