Avatar billede styrmand Nybegynder
27. september 2001 - 13:05 Der er 20 kommentarer og
2 løsninger

Access fra ADO

Det er muligt at tilgå en Accessdatabase gennem ADO. Herved kan man bl.a. udføre SQL Udtryk. Man kan således oprette, rette og slette data, samt tabeller.
Mit spørgsmål er nu, er det muligt at brube SQL (DDL) til at oprette forespørgsler (Views og Stored Procedure)?
Er der nogen som har viden, erfaring, eller eksempler på dette?
Avatar billede wisen Nybegynder
27. september 2001 - 13:09 #1
Access understøtter, så vidt jeg ved, ikke views og stored procedures...
Avatar billede terry Ekspert
27. september 2001 - 13:14 #2
With Access 2000 you can actually create an SQL (MSDE) database which is a cut down version of SQL Server. So yes, I would think that you can create Views and Stored Procedures using ADO.
But I will say I have never tried it. (Just read about it!)
Avatar billede terry Ekspert
27. september 2001 - 13:17 #3
These VIEWS and STORED PROCEDURES will end up in the MDSE database.
But if I understand your question correctly I suspect that you dont want to use Access as the front end. If this is the case then DROP Access and just concern yourself with the MSDE database.
Avatar billede wisen Nybegynder
27. september 2001 - 13:18 #4
... Dette er fra hjælpen fra Access 2000 :

Bemærk! Microsoft Jet-databasemotoren understøtter ikke brugen af CREATE PROCEDURE eller DDL-sætninger med ikke-Microsoft Jet-databasemotordatabaser.


--------------------------------------------------------------------------------
Avatar billede proaccess Nybegynder
27. september 2001 - 13:22 #5
Dette er muligt i Access 2000 !!!

Public Function test()
  Dim conn As New ADODB.Connection
  Set conn = CurrentProject.Connection
 
  conn.Execute \"CREATE VIEW Test AS SELECT * FROM [Aktuel budget-version]\"
  Set conn = Nothing
 
End Function
Avatar billede proaccess Nybegynder
27. september 2001 - 13:24 #6
Du kan bare ikke \"se\" view\'et under forespørgsler... Men det ER der... Prøv efterfølgende at lave følgende forespørgsel:

SELECT * FROM Test;

og du vil se dine data...
Avatar billede terry Ekspert
27. september 2001 - 13:25 #7
When you use MSDE you use the MSDE (Microsoft Data Engine) and not Jet. And as this is a cut down version of SQL then you can do what you can if you were using SQL Server as your backend (data)!
27. september 2001 - 13:53 #8
ProAccess-> Det var da en sjov (udokumenteret?) feature!!!
Hvor fa\'en har du støvet den frem henne?
Avatar billede styrmand Nybegynder
27. september 2001 - 13:54 #9
Proaccess>> vil det også være muligt med Stored Procedures og parametre?

Terry> Jeg anvender Jet i en connectionstring. Min database (.mdb) ligger på en web-server og bearbejdes med ASP. Er det muligt at forbinde sig til den i stedet gennen MSDE?
Avatar billede proaccess Nybegynder
27. september 2001 - 13:59 #10
Jeg \"legede\" lidt med SQL, for at se hvor ANSI92-kompatibelt Access var blevet... Og det var så dér jeg landede... ;-)

Jeg bruger nu følgende funktion til kørsel af praktisk talt al DDL:

Public Function RunSQL(strSQL As String)
  CurrentProject.Connection.Execute strSQL, , adCmdText + adExecuteNoRecords
End Function

Kaldes med:
  RunSQL \"CREATE VIEW ....\"

BTW: adExecuteNoRecords \"skulle\" få den til at køre lidt hurtigere... Hvad kender du til det?

Avatar billede proaccess Nybegynder
27. september 2001 - 14:03 #11
>styrmand: YEP...

runSQL \"CREATE PROCEDURE Test AS Parameters [@Distrikt] Long; SELECT * FROM Kunder WHERE Distrikt = [@Distrikt]\"

Avatar billede proaccess Nybegynder
27. september 2001 - 14:04 #12
Man skal dog lige huske at slette sine VIEWS og procedurer igen:

RunSQL \"DROP VIEW Test\"
Avatar billede terry Ekspert
27. september 2001 - 14:07 #13
Not sure I quite understand where your going with this.
Lets drop MSDE for a while! You already have an Access database on a server and your using ADO to access it. You want to know if you can create VIEWS and stored procedures in the database.
In Access you can make queries which are much like views. You can also make parameter queries to select specific records. You can also make functions in Access which you can perform various tasks. These fucntions can be performed from a query. I doubtthey are as flexible as VIEWS and STORED PROCEDURES but they can be very usefull.

Your question concerning connecting to an MDB through MSDE. What do you want to achieve with that? Proaccess says he has tried it in a MDB so you dont need MSDE!


Avatar billede proaccess Nybegynder
27. september 2001 - 14:07 #14
Hvis du arbejder fra ASP, kan du vist bare bruge en \"normal\" connection...

Set Conn = ...
Conn.Execute \"DROP VIEW Test\"
Set Conn = Nothing
27. september 2001 - 14:11 #15
ProAcces-> Det er meget smart. Jeg ligger ofte og ændre SQL\'en i en passthrough-query for både at muligheden for dynamik og hurtighed. Det vil være væsentlig hurtigere/nemmere på denne måde.

ang. adExecuteNoRecords så går jeg ud fra at den angiver at der ikke skal returnere nogle records (som hvis det var en Select-query). Derfor er det naturligt at den er lidt hurtigere hvis den på forhånd ved at der ikke kommer noget retur. Tror du ikke?
Det samme gælder netop passthrough-queries.

/Thomas
Avatar billede terry Ekspert
27. september 2001 - 14:14 #16
Thomas> I think we should concider move to Access 2000 :)

terry
Avatar billede styrmand Nybegynder
27. september 2001 - 14:15 #17
Terry> jeg er ude på at kunne manipulere min database, medens den befinder sig på serveren. Jeg har ikke lyst til at down og uploade mdb-fil hver gang jeg skal foretage en ændring.
Det har fungeret fint indtil nu, hvor jeg har fået behov for at oprette nogle stored procedures.

Proaccess> Jeg sidder lige og tester de ting du har skrevet. Det virker fint med Views, men jeg kan ikke få stored procedures og parametre til at virke. Men jeg prøver mig lidt frem.
Jeg mener i øvrigt jeg har arbejdet med de ting før. Jeg kan i hvert fald huske at Views ikke kan ses i Access eget brugerinterface. Jeg mener dog også at kunne huske, hvordan man kunne lave en oversigt, så de ikke bare forsvinder. Men det kan jeg evt. vende tilbage med senere.
Avatar billede terry Ekspert
27. september 2001 - 14:19 #18
This problem with downloading the MDB was up yesterday!
You can FTP the database and instead of down loading it just open it where it is!
Avatar billede proaccess Nybegynder
27. september 2001 - 14:20 #19
Med hensyn til oversigt, så kan de \"læses\" fra MSysObjects...

Jeg testede mit lille eksempel på en SP, på min egen DB, og det virkede, jeg ved INTET om hvor komplicerede SP\'er man kan lave på denne måde!
Avatar billede styrmand Nybegynder
27. september 2001 - 14:49 #20
Ja, det virker squ.
Proaccess>Du får hovedparten af pointsene for dine eminente svar.
Terry>Du får også lidt, bl.a. for FTP ideen. Jeg kan ikke få det til at virke, men det skyldes nok at jeg ikke har de rigtige rettigheder på serveren. Eller hvad?
Avatar billede styrmand Nybegynder
27. september 2001 - 14:50 #21
Ja, det virker squ.
Proaccess>Du får hovedparten af pointsene for svar, som faktisk har løst mit problem.
Terry>Du får også lidt, bl.a. for FTP ideen. Jeg kan ikke få det til at virke, men det skyldes nok at jeg ikke har de rigtige rettigheder på serveren. Eller hvad?
Avatar billede terry Ekspert
27. september 2001 - 15:25 #22
first thanks for the points:)
If you can download the database the I would have thought you could open it where it is. 
Take a look at this question

http://www.eksperten.dk/spm/113913
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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