Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-21 18:08:57 - Ulf Elfving, i forum visual basic - allmänt, Tråden har 11 Kommentarer och lästs av 475 personer

Är det nån som vet varför en funktion i vb kan returnera ett ADODB.Recordset, men inte ett DAO.Recordset?

Det fungerar att ha en funktion i en modul som returnerar ADODB, men ändrar jag det till DAO så dör recordset innan jag har skickat tillbaks det med funktionen.

Måste tyvärr använda DAO objektet.....
TIA



Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-21 18:45:04 - Andreas Hillqvist

<br>För att läsa inlägget, klicka här: Klicka här


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-21 20:15:00 - Ulf Elfving

Jag tror att jag vet vad jag gjort för fel
Jag tror att jag glömt Set FuncName = rs i slutet av funktionen det står säkert bara "FuncName = rs". skall kolla imorgon


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 09:03:34 - Ulf Elfving

Andreas, förstår inte riktigt ditt inlägg.....
Problemen kvarstår, det verkar inte som om jag kan ha en function som returnerar ett dao.recordset.

Kallande funktion

<code>
Private Sub Command5_Click()

Dim rsx As dao.Recordset

Set rsx = zz()

lbl.Caption = ""

'************
' raden nedanför får jag felmeddelande
' Error 3420
' Object invalid or no longer set
'************
Do Until rsx.EOF
lbl.Caption = lbl.Caption & rsx(0) & vbCrLf
rsx.MoveNext
Loop

rsx.Close


</code>

Dbaccess function

<code>
Function zz() As dao.Recordset
Dim db As dao.Database
Dim ws As dao.Workspace
Dim rs As dao.Recordset

Set ws = DBEngine.CreateWorkspace("", "", "", dbUseODBC)

' måste använda fildsn eftersom vi inte kan installera dsn på servern
Set db = ws.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DATABASE=ass_test;FileDSN=" & App.Path & "\waydsn.dsn;UID=sa;PWD=")
'Set rs = db.OpenRecordset("select * from ort") ', DAO.dbOpenDynaset, DAO.dbExecDirect, DAO.dbOptimisticValue)

Set rs = db.OpenRecordset("sp_WAY_SearchUser 'p'")

' Här har jag ett recordset som innehåller data
Set zz = rs

End Function

</code>


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 09:11:49 - Mikael Wedham

<br>För att läsa inlägget, klicka här: Klicka här


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 09:14:29 - Ulf Elfving

Vad händer?
Varför lägger ni in en länk till detta inlägg?


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 12:33:59 - Johan Djupmarker

<br>För att läsa inlägget, klicka här: Klicka här


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 13:55:34 - Pelle Johansson

test


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-22 18:06:11 - Ulf Elfving

Har löst problemet

Jag skickar in en array till funktionen som jag fyller genom att köra: rsRecordset.GetRows()

/Uffe


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-23 01:16:10 - Andreas Hillqvist

PRoblemet är att i DAO måste du hålla objekt herkin vid liv. Efter som din workspace bara lever i funktionen kommer då oxå bara ditt recordset att göra det.

Testa:
<code>
Private db As dao.Database
Private ws As dao.Workspace

Private Sub Form_Load()
Set ws = DBEngine.CreateWorkspace("", "", "", dbUseODBC)
Set db = ws.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DATABASE=ass_test;FileDSN=" & App.Path & "\waydsn.dsn;UID=sa;PWD=")
End Sub

Private Sub Form_UnLoad()
db.Close
Set db = Nothing

ws.Close
Set ws = Nothing
End Sub


Private Sub Command5_Click()
Dim rsx As dao.Recordset

Set rsx = zz(db)

lbl.Caption = ""

Do Until rsx.EOF
lbl.Caption = lbl.Caption & rsx(0) & vbCrLf
rsx.MoveNext
Loop

rsx.Close
End Sub


Function zz(db As dao.Database) As dao.Recordset
Set zz = db.OpenRecordset("sp_WAY_SearchUser 'p'")
End Function
</code>


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-23 22:16:22 - Ulf Elfving

Tack Anders!
Detta skulle kunna vara en lösning, men innebär inte denna lösning att man håller en connection mot databasen öppen hela tiden programmet är igång?
Det jag lärt både hör på Pellesoft och nästan överallt annars är väl principen att öppna connection sent, och stänga den fort, eller beter sig Workspace objektet sig annorlunda?


Svara

Sv: Funktion kan returnera ADODB.Recordset men ej DAO.Recordset?

Postades av 2002-03-24 01:57:20 - Andreas Hillqvist

Du kan göra vilket som. Gjorde bara så i exemplet. Men du måste hålla anslutningen öppen så länge du använder recordsetet. Därför är det mer lämpligt att göra så i DAO. Blir så mycket kod. Beror på hur man prioriterar prestanda.

<code>

Private Sub Form_Load()

End Sub

Private Sub Form_UnLoad()

End Sub

Private Sub Command5_Click()
Dim ws As dao.Workspace
Dim db As dao.Database
Dim rsx As dao.Recordset

Set ws = DBEngine.CreateWorkspace("", "", "", dbUseODBC)
Set db = ws.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DATABASE=ass_test;FileDSN=" & App.Path & "\waydsn.dsn;UID=sa;PWD=")

Set rsx = zz(db)

lbl.Caption = ""

Do Until rsx.EOF
lbl.Caption = lbl.Caption & rsx(0) & vbCrLf
rsx.MoveNext
Loop

rsx.Close

db.Close
Set db = Nothing

ws.Close
Set ws = Nothing
End Sub


Function zz(db As dao.Database) As dao.Recordset
Set zz = db.OpenRecordset("sp_WAY_SearchUser 'p'")
End Function
</code>

Att varje gång öppna och stänga recordsetet blir ju då lite knöligt. Kan ju göra så att man kapslar det i en funktion.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 644
27 953
271 710
12 026
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies