[AccessD] Fw: [dba-OT] Keeping A Database Connection Open inTribble'sRelinker

Rocky Smolin - Beach Access Software bchacc at san.rr.com
Tue Oct 28 09:59:26 CST 2003


John:

Thanks for the code.

It works well but not a dramatic speed improvement.

I made a copy of ts_tableLinks and called the old function
tsCheckTableLinksOriginal and the new one tsCheckTableLinksNew.

(I didn't use the conditional compile.  Got an error - Next without For -
and there's about 12 nested If/Thens, so I just replaced the call

fLinkIsValid(mtbl.Name)

in the original with

fLinkIsValidNew(mdb, mtbl.Name)

in the new version.)

Then I put both  calls in the opening form:

tsCheckTableLinksOriginal
tsCheckTableLinksNew

The Original takes about 7 seconds and the New takes about 5.  Is this about
right?

Regards,

Rocky

----- Original Message ----- 
From: "John Colby" <jcolby at colbyconsulting.com>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Monday, October 27, 2003 5:27 PM
Subject: RE: [AccessD] Fw: [dba-OT] Keeping A Database Connection Open
inTribble'sRelinker


> Rocky,
>
> Here's what I did:
>
> *********
> On or about line 301 of ts_basTableLinks::
>
> Private colRst As Collection    'collection to hold one open recordset per
> BE to speed up db
> 'compiler directive for the logger
> #Const LogIt = True
> #Const TimeIt = False
>
> *********
> Then add in a new function below:
>
>
'--------------------------------------------------------------------------
> ' Determines if a link to a table is valid by attempting to open the
Table.
> ' If this attempt fails the link must be invalid.
> '
> ' Accepts: strTable = Name of Table
> ' Returns: True if link is valid, False otherwise.
>
'--------------------------------------------------------------------------
> Private Function fLinkIsValidNew(db As DAO.Database, strTable As String)
As
> Boolean
>    Dim rst As DAO.Recordset
>    Dim var As Variant
>
>    On Error Resume Next
>    Set rst = db.OpenRecordset(strTable)
>    If err <> 0 Then
>       fLinkIsValidNew = False
>    Else
>       fLinkIsValidNew = True
>       'keep one recordset / BE open to improve performance
>       colRst.Add rst, db.Name
>    End If
>    On Error GoTo 0
>
> End Function
>
> *********
> Notice that in this function I store a rst in colRst, with the BE name as
> the key.  Doing this causes the collection to accept a single recordset,
but
> won't accept any others because the key would be the same.
>
>
> *********
> On or about line 441 of ts_basTableLinks:
>
>          LogProcess "Validating: " & mtbl.Name & " "
> #Const TestNew = True
> #If TestNew Then
>          If fLinkIsValidNew(mdb, mtbl.Name) And fForceRelink = False Then
> #Else
>          If fLinkIsValid(mtbl.Name) And fForceRelink = False Then
> #End If
>             'LogResult "[OK]"
>             '.If fCheckAll parameter is false, then quit after first
>             '.valid table link is found.
>             If Not (fCheckAllLinks = True) Then
>
> *********
> Notice that I use conditional compilation to call the new function instead
> of the old.
>
> That should do it for you.  Let me know.
>
> John W. Colby
> www.colbyconsulting.com
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Rocky Smolin -
> Beach Access Software
> Sent: Monday, October 27, 2003 7:52 PM
> To: AccessD at databaseadvisors.com
> Subject: [AccessD] Fw: [dba-OT] Keeping A Database Connection Open in
> Tribble'sRelinker
>
>
>
> Dear List:
>
> I'm using Tribble's relinker in an A2K mdb.  Does anybody know how to
modify
> this to keep a reference open to the back end so that it relinks faster
over
> a network?
>
> MTIA and regards,
>
> Rocky Smolin
> Beach Access Software
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the AccessD mailing list