Thread: VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

From
linuxgps
Date:
Hi all,

I'm a beginner to MS Windows.
I began to to test VBA 6.0(SP6) with Postgresql 8.1 -with odbc- on
WIN2K(SP4).
For the test (accessing postgres db thru visual basic) I use the code,
given by the distro (psqlODBC HOWTO- Visual Basic).
The first problem I've encounted that the code in the given test snippet
is not full functioning:
"rs.Refresh"  doesn't implemented ?
I use in the "Project Preferences" "Microsoft ActiveXData Objects 2.1
library (msado21.tlb)

I've installed some other MS stuff on the machine, and now the Postgres
database call makes a memory exception and crashes.

Q 1.:  Is this general, or some libraries are wrong on my system ?
Q 2.: Which MS tools are to control/update the msado-libraries
Q.3.: Which msado or similars are necessary to connect with visual basic
to postgres ?

thank  you in advance
 testuser vba

-----------------

Sub Main()
Dim cn as New ADODB.Connection
Dim rs as New ADODB.Recordset

  'Open the connection
  cn.Open "DSN=<MyDataSourceName>;" & _
          "UID=<MyUsername>;" & _
          "PWD=<MyPassword>;" & _
          "Database=<MyDatabaseName>"

  'For updateable recordsets we would typically open a Dynamic recordset.
  'Forward Only recordsets are much faster but can only scroll forward and
  'are read only. Snapshot recordsets are read only, but scroll in both
  'directions.
  rs.Open "SELECT id, data FROM vbtest", cn, adOpenDynamic

  'Loop though the recordset and print the results
  'We will also update the accessed column, but this time access it through
  'the Fields collection. ISO-8601 formatted dates/times are the safest IMHO.
  While Not rs.EOF
    Debug.Print rs!id & ": " & rs!data
    rs.Fields("accessed") = Format(Now, "yyyy-MM-dd hh:mm:ss")
    rs.Update
    rs.MoveNext
  Wend

  'Add a new record to the recordset
  rs.AddNew
  rs!id = 76
  rs!data = 'More random data'
  rs!accessed = Format(Now, "yyyy-MM-dd hh:mm:ss")
  rs.Update

  'Insert a new record into the table
  cn.Execute "INSERT INTO vbtest (id, data) VALUES (23, 'Some random data');"

  'Refresh the recordset to get that last record...
  rs.Refresh

  'Get the record count
  rs.MoveLast
  rs.MoveFirst
  MsgBox rs.RecordCount & " Records are in the recordset!"

  'Cleanup
  If rs.State <> adStateClosed Then rs.Close
  Set rs = Nothing
  If cn.State <> adStateClosed Then cn.Close
  Set cn = Nothing
End Sub




Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

From
Ludek Finstrle
Date:
> Q 1.:  Is this general, or some libraries are wrong on my system ?

There is problem in psqlodbc >= 08.01 (I'm not sure if in 08.00 too).

>  'For updateable recordsets we would typically open a Dynamic recordset.

Updateable recordsets are broken since begin of rewrite to libpq
library. This is the problem.

>  'Forward Only recordsets are much faster but can only scroll forward and

This and static cursors may work correctly.

>  rs.Open "SELECT id, data FROM vbtest", cn, adOpenDynamic

adOpenDynamic isn't supported with the newest version.
If you need this behaviour you can try older 07.03 (or maybe 08.00)
version of psqlodbc.

We are at the start point of rewriting the psqlODBC driver. Please
be patient with us.

To all:
Isn't the time to change the documentation? Is here some volunteer which
provide this job for us?

Regards,

Luf

Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

From
"Dave Page"
Date:

> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Ludek Finstrle
> Sent: 06 January 2006 06:33
> To: linuxgps
> Cc: pgsql-odbc@postgresql.org
> Subject: Re: [ODBC] VBA 6 crashes with WIN2K, Postgres 8.1,
> why ? which dll ??
>
> > Q 1.:  Is this general, or some libraries are wrong on my system ?
>
> There is problem in psqlodbc >= 08.01 (I'm not sure if in 08.00 too).
>
> >  'For updateable recordsets we would typically open a
> Dynamic recordset.
>
> Updateable recordsets are broken since begin of rewrite to libpq
> library. This is the problem.

Updateable cursors have *always* been broken. It's an experimental
feature prior to 8.0 which has never had all the kinks worked out.

Regards, Dave

Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

From
Ludek Finstrle
Date:
> > Updateable recordsets are broken since begin of rewrite to libpq
> > library. This is the problem.
>
> Updateable cursors have *always* been broken. It's an experimental
> feature prior to 8.0 which has never had all the kinks worked out.

I'm sorry I mean completely broken (it has never worked in 08.01).
You can have a luck with older releases. It's only partialy broken there.

Why it's in documentation when the support was *always* broken?
I hope the example in documentation is working in older releases.
I hasn't tested it.

Regards,

Luf

Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? which dll ??

From
"Dave Page"
Date:

> -----Original Message-----
> From: Ludek Finstrle [mailto:luf@pzkagis.cz]
> Sent: 06 January 2006 08:39
> To: Dave Page
> Cc: pgsql-odbc@postgresql.org
> Subject: Re: [ODBC] VBA 6 crashes with WIN2K, Postgres 8.1,
> why ? which dll ??
>
> Why it's in documentation when the support was *always* broken?
> I hope the example in documentation is working in older releases.
> I hasn't tested it.

There's an example in the documentation? Where?

Regards, Dave

Antw: Re: VBA 6 crashes with WIN2K, Postgres 8.1, why? which dll ??

From
"Thomas Holschen"
Date:
--

_____________________________________________
Hela Gewürzwerk Hermann Laue GmbH & Co.KG
EDV
Thomas Holschen
Beimoorweg 11
22926 Ahrensburg

Tel. : +49 4102/496-381
http://www.hela-food.de
_____________________________________________

>>> "Dave Page" <dpage@vale-housing.co.uk> schrieb am Freitag, 6.
Januar 2006 um
10:29 in Nachricht
<E7F85A1B5FF8D44C8A1AF6885BC9A0E4E7EDEA@ratbert.vale-housing.co.uk>:

>
>> -----Original Message-----
>> From: Ludek Finstrle [mailto:luf@pzkagis.cz]
>> Sent: 06 January 2006 08:39
>> To: Dave Page
>> Cc: pgsql-odbc@postgresql.org
>> Subject: Re: [ODBC] VBA 6 crashes with WIN2K, Postgres 8.1,
>> why ? which dll ??
>>
>> Why it's in documentation when the support was *always* broken?
>> I hope the example in documentation is working in older releases.
>> I hasn't tested it.
>
> There's an example in the documentation? Where?
>
> Regards, Dave
>
> ---------------------------(end of
broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

The Example is installed with MSI-Installer for psqlODBC 08.01.0101.
It's installed as c:/Programme/psqlODBC/docs/howto-vb.html.

Regards

Thomas
________________________________________________________

psqlODBC HOWTO - Visual Basic

Author: Dave Page (dpage@postgresql.org)
Release Date: 13 November 2001
Description: Example based Mini-Howto on Accessing PostgreSQL from
Visual Basic

This document provides some sample code to get you started with Visual
Basic & PostgreSQL.

Requirements to get the subroutines to work:

    * Visual Basic 5/6
    * A reference in the VB project to Microsoft ActiveX Data Objects
    * A PostgreSQL datasource.

The example code shown below may need some modification to make it
actually work in your environment. There is one table used in the
example:

    CREATE TABLE vbtest(
       id int4,
       data text,
       accessed timestamp
    );

Code

Sub Main()
Dim cn as New ADODB.Connection
Dim rs as New ADODB.Recordset

  'Open the connection
  cn.Open "DSN=<MyDataSourceName>;" & _
          "UID=<MyUsername>;" & _
          "PWD=<MyPassword>;" & _
          "Database=<MyDatabaseName>"

  'For updateable recordsets we would typically open a Dynamic
recordset.
  'Forward Only recordsets are much faster but can only scroll forward
and
  'are read only. Snapshot recordsets are read only, but scroll in both

  'directions.
  rs.Open "SELECT id, data FROM vbtest", cn, adOpenDynamic

  'Loop though the recordset and print the results
  'We will also update the accessed column, but this time access it
through
  'the Fields collection. ISO-8601 formatted dates/times are the safest
IMHO.
  While Not rs.EOF
    Debug.Print rs!id & ": " & rs!data
    rs.Fields("accessed") = Format(Now, "yyyy-MM-dd hh:mm:ss")
    rs.Update
    rs.MoveNext
  Wend

  'Add a new record to the recordset
  rs.AddNew
  rs!id = 76
  rs!data = 'More random data'
  rs!accessed = Format(Now, "yyyy-MM-dd hh:mm:ss")
  rs.Update

  'Insert a new record into the table
  cn.Execute "INSERT INTO vbtest (id, data) VALUES (23, 'Some random
data');"

  'Refresh the recordset to get that last record...
  rs.Refresh

  'Get the record count
  rs.MoveLast
  rs.MoveFirst
  MsgBox rs.RecordCount & " Records are in the recordset!"

  'Cleanup
  If rs.State <> adStateClosed Then rs.Close
  Set rs = Nothing
  If cn.State <> adStateClosed Then cn.Close
  Set cn = Nothing
End Sub


Useful Functions

' The escapeString function can be used to fix strings for us in INSERT
and
' UPDATE SQL statements. It will take a value, and return it ready for

' use in your statement as NULL, or quoted with backslashes and single
quotes
' escaped.

Function escapeString(vValue As Variant) As String

  If IsNull(vValue) Then
    escapeString = "NULL"
  else
    escapeString = "'" & Replace(Replace(vValue, "", ""), "'", "''"
) &
"'"
  end if

End Function

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn
Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte den Absender und löschen Sie diese E-Mail. Das unerlaubte
Kopieren sowie die unbefugte Weitergabe dieser E-Mail ist nicht gestattet. Aus
Rechts- und Sicherheitsgründen ist die in dieser E-Mail gegebene Information nicht
rechtsverbindlich.

This e-mail contains confidential and/or privileged information. If you are not the
intended addressee or have received this e-mail in error please notify the sender and
delete this e-mail. Any unauthorized copying, disclosure or distribution of the material
in this e-mail is strictly forbidden. Due to legal and security reasons the information
contained in this e-mail is not legally binding.

Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? whichdll ??

From
"Campbell, Greg"
Date:
"Interesting" example.
1. Using PostgreSQL is basically a client-server relationship,..so adOpenDynamic (updated cursors) is a
bad choice. I recommend adOpenForwardOnly for fast one-way reading, and adOpenStatic to pull a client side
recordset so that you can move forward and back. In either case declare the recordset Cursor to be client
side (rs.CursorLocation = adUseClient).

This also means no rs.AddNew and no rs.Refresh.
Outside of MS Jet, I think of them as abominations.

I have come to think of the connection between my app and the database as a potentially slow narrow pipe
across a vast distance. Updateable cursors hold open the connection while I cursor up and down, always
tying up more database side resources and network resources. I always send commands, and pull back
recordsets. The only exception that makes sense is the browsing of mammoth datasets (millions of rows).
How practical is your application if you're visually browsing millions of rows.

2. ADODB library version 2.1 is mildly ancient. I'm use to seeing 2.5 on older installations, and lately
2.6,2.7 and maybe a 2.8. At any rate, the latest is always a free download from the MSDN MDAC area
(Microsoft Data Access Components).

3. Again this is a personal preference, but I always use connection.Execute for INSERTS,UPDATE, and
DELETES. Your example used on AddNew and one cnn.Execute.

4. I find a object referencing style and stick with it. rs.Fields("fieldname") and rs!fieldname are both a
little dated. rs("fieldname"), or rs(variable_holding_field_name) or rs(integer_field_ndx) seem to be
cultural standards now.

5. I loathe to admit it, ADO.NET is also a much stronger tool for web/client apps for things like
databinding. With it data grids are bound to disconnected recordsets, which execute discrete INSERTS,
UPDATES, AND DELETE underneath,...again avoiding the updateable cursor.

Oh, and PostgreSQL via ODBC,...
it has never been strong on the updateable cursor/dynamic cursor thing.



linuxgps wrote:
> Hi all,
>
> I'm a beginner to MS Windows.
> I began to to test VBA 6.0(SP6) with Postgresql 8.1 -with odbc- on
> WIN2K(SP4).
> For the test (accessing postgres db thru visual basic) I use the code,
> given by the distro (psqlODBC HOWTO- Visual Basic).
> The first problem I've encounted that the code in the given test snippet
> is not full functioning:
> "rs.Refresh"  doesn't implemented ?
> I use in the "Project Preferences" "Microsoft ActiveXData Objects 2.1
> library (msado21.tlb)
>
> I've installed some other MS stuff on the machine, and now the Postgres
> database call makes a memory exception and crashes.
>
> Q 1.:  Is this general, or some libraries are wrong on my system ?
> Q 2.: Which MS tools are to control/update the msado-libraries
> Q.3.: Which msado or similars are necessary to connect with visual basic
> to postgres ?
>
> thank  you in advance
> testuser vba
>
> -----------------
>
> Sub Main()
> Dim cn as New ADODB.Connection
> Dim rs as New ADODB.Recordset
>
>  'Open the connection
>  cn.Open "DSN=<MyDataSourceName>;" & _
>          "UID=<MyUsername>;" & _
>          "PWD=<MyPassword>;" & _
>          "Database=<MyDatabaseName>"
>
>  'For updateable recordsets we would typically open a Dynamic recordset.
>  'Forward Only recordsets are much faster but can only scroll forward
> and  'are read only. Snapshot recordsets are read only, but scroll in
> both  'directions.  rs.Open "SELECT id, data FROM vbtest", cn,
> adOpenDynamic
>
>  'Loop though the recordset and print the results
>  'We will also update the accessed column, but this time access it
> through  'the Fields collection. ISO-8601 formatted dates/times are the
> safest IMHO.
>  While Not rs.EOF
>    Debug.Print rs!id & ": " & rs!data
>    rs.Fields("accessed") = Format(Now, "yyyy-MM-dd hh:mm:ss")
>    rs.Update
>    rs.MoveNext
>  Wend
>
>  'Add a new record to the recordset
>  rs.AddNew
>  rs!id = 76
>  rs!data = 'More random data'
>  rs!accessed = Format(Now, "yyyy-MM-dd hh:mm:ss")
>  rs.Update
>
>  'Insert a new record into the table
>  cn.Execute "INSERT INTO vbtest (id, data) VALUES (23, 'Some random
> data');"
>
>  'Refresh the recordset to get that last record...
>  rs.Refresh
>
>  'Get the record count
>  rs.MoveLast
>  rs.MoveFirst
>  MsgBox rs.RecordCount & " Records are in the recordset!"
>
>  'Cleanup
>  If rs.State <> adStateClosed Then rs.Close
>  Set rs = Nothing
>  If cn.State <> adStateClosed Then cn.Close
>  Set cn = Nothing
> End Sub
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>       choose an index scan if your joining column's datatypes do not
>       match

Attachment

Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? whichdll ??

From
linuxgps
Date:
Well Greg, you're  right.
Just the used code snippet is about 4 years old and was shipped with the
distro.
For beginners I think even a slow code  is much better as  having nothing.
Have you any tutorial code using Postgres thru VBA with ADO.NET ?

Campbell, Greg wrote:

> "Interesting" example.
> 1. Using PostgreSQL is basically a client-server relationship,..so
> adOpenDynamic (updated cursors) is a bad choice. I recommend
> adOpenForwardOnly for fast one-way reading, and adOpenStatic to pull a
> client side recordset so that you can move forward and back. In either
> case declare the recordset Cursor to be client side (rs.CursorLocation
> = adUseClient).
>
> This also means no rs.AddNew and no rs.Refresh.
> Outside of MS Jet, I think of them as abominations.
>
> I have come to think of the connection between my app and the database
> as a potentially slow narrow pipe across a vast distance. Updateable
> cursors hold open the connection while I cursor up and down, always
> tying up more database side resources and network resources. I always
> send commands, and pull back recordsets. The only exception that makes
> sense is the browsing of mammoth datasets (millions of rows). How
> practical is your application if you're visually browsing millions of
> rows.
>
> 2. ADODB library version 2.1 is mildly ancient. I'm use to seeing 2.5
> on older installations, and lately 2.6,2.7 and maybe a 2.8. At any
> rate, the latest is always a free download from the MSDN MDAC area
> (Microsoft Data Access Components).
>
> 3. Again this is a personal preference, but I always use
> connection.Execute for INSERTS,UPDATE, and DELETES. Your example used
> on AddNew and one cnn.Execute.
>
> 4. I find a object referencing style and stick with it.
> rs.Fields("fieldname") and rs!fieldname are both a little dated.
> rs("fieldname"), or rs(variable_holding_field_name) or
> rs(integer_field_ndx) seem to be cultural standards now.
>
> 5. I loathe to admit it, ADO.NET is also a much stronger tool for
> web/client apps for things like databinding. With it data grids are
> bound to disconnected recordsets, which execute discrete INSERTS,
> UPDATES, AND DELETE underneath,...again avoiding the updateable cursor.
>
> Oh, and PostgreSQL via ODBC,...
> it has never been strong on the updateable cursor/dynamic cursor thing.
>
>
>
> linuxgps wrote:
>
>> Hi all,
>>
>> I'm a beginner to MS Windows.
>> I began to to test VBA 6.0(SP6) with Postgresql 8.1 -with odbc- on
>> WIN2K(SP4).
>> For the test (accessing postgres db thru visual basic) I use the
>> code, given by the distro (psqlODBC HOWTO- Visual Basic).
>> The first problem I've encounted that the code in the given test
>> snippet is not full functioning:
>> "rs.Refresh"  doesn't implemented ?
>> I use in the "Project Preferences" "Microsoft ActiveXData Objects 2.1
>> library (msado21.tlb)
>>
>> I've installed some other MS stuff on the machine, and now the
>> Postgres database call makes a memory exception and crashes.
>>
>> Q 1.:  Is this general, or some libraries are wrong on my system ?
>> Q 2.: Which MS tools are to control/update the msado-libraries
>> Q.3.: Which msado or similars are necessary to connect with visual
>> basic to postgres ?
>>
>> thank  you in advance
>> testuser vba
>>
>> -----------------
>>
>> Sub Main()
>> Dim cn as New ADODB.Connection
>> Dim rs as New ADODB.Recordset
>>
>>  'Open the connection
>>  cn.Open "DSN=<MyDataSourceName>;" & _
>>          "UID=<MyUsername>;" & _
>>          "PWD=<MyPassword>;" & _
>>          "Database=<MyDatabaseName>"
>>
>>  'For updateable recordsets we would typically open a Dynamic recordset.
>>  'Forward Only recordsets are much faster but can only scroll forward
>> and  'are read only. Snapshot recordsets are read only, but scroll in
>> both  'directions.  rs.Open "SELECT id, data FROM vbtest", cn,
>> adOpenDynamic
>>
>>  'Loop though the recordset and print the results
>>  'We will also update the accessed column, but this time access it
>> through  'the Fields collection. ISO-8601 formatted dates/times are
>> the safest IMHO.
>>  While Not rs.EOF
>>    Debug.Print rs!id & ": " & rs!data
>>    rs.Fields("accessed") = Format(Now, "yyyy-MM-dd hh:mm:ss")
>>    rs.Update
>>    rs.MoveNext
>>  Wend
>>
>>  'Add a new record to the recordset
>>  rs.AddNew
>>  rs!id = 76
>>  rs!data = 'More random data'
>>  rs!accessed = Format(Now, "yyyy-MM-dd hh:mm:ss")
>>  rs.Update
>>
>>  'Insert a new record into the table
>>  cn.Execute "INSERT INTO vbtest (id, data) VALUES (23, 'Some random
>> data');"
>>
>>  'Refresh the recordset to get that last record...
>>  rs.Refresh
>>
>>  'Get the record count
>>  rs.MoveLast
>>  rs.MoveFirst
>>  MsgBox rs.RecordCount & " Records are in the recordset!"
>>
>>  'Cleanup
>>  If rs.State <> adStateClosed Then rs.Close
>>  Set rs = Nothing
>>  If cn.State <> adStateClosed Then cn.Close
>>  Set cn = Nothing
>> End Sub
>>
>>
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 9: In versions below 8.0, the planner will ignore your desire to
>>       choose an index scan if your joining column's datatypes do not
>>       match
>
>---------------------------(end of broadcast)---------------------------
>TIP 6: explain analyze is your friend
>
>


Re: VBA 6 crashes with WIN2K, Postgres 8.1, why ? whichdll??

From
"Campbell, Greg"
Date:
For ADO.NET I am using  Npgsql, which you can get from the affiliated project site -- the Npgsql project.
It is just like using the .NET SQL server, and Oledb libraries from the MSDN. The project site has
documentation with examples on how to use Npgsql. I thinks there stuff in the GBorg and the pgfoundry site.

I works for me.
(except for Parameterized stored procedures using an actual Parameters collection,...maybe it's just me.)



linuxgps wrote:
>
> Well Greg, you're  right.
> Just the used code snippet is about 4 years old and was shipped with the
> distro.
> For beginners I think even a slow code  is much better as  having nothing.
> Have you any tutorial code using Postgres thru VBA with ADO.NET ?
>
> Campbell, Greg wrote:
>
>> "Interesting" example.
>> 1. Using PostgreSQL is basically a client-server relationship,..so
>> adOpenDynamic (updated cursors) is a bad choice. I recommend
>> adOpenForwardOnly for fast one-way reading, and adOpenStatic to pull a
>> client side recordset so that you can move forward and back. In either
>> case declare the recordset Cursor to be client side (rs.CursorLocation
>> = adUseClient).
>>
>> This also means no rs.AddNew and no rs.Refresh.
>> Outside of MS Jet, I think of them as abominations.
>>
>> I have come to think of the connection between my app and the database
>> as a potentially slow narrow pipe across a vast distance. Updateable
>> cursors hold open the connection while I cursor up and down, always
>> tying up more database side resources and network resources. I always
>> send commands, and pull back recordsets. The only exception that makes
>> sense is the browsing of mammoth datasets (millions of rows). How
>> practical is your application if you're visually browsing millions of
>> rows.
>>
>> 2. ADODB library version 2.1 is mildly ancient. I'm use to seeing 2.5
>> on older installations, and lately 2.6,2.7 and maybe a 2.8. At any
>> rate, the latest is always a free download from the MSDN MDAC area
>> (Microsoft Data Access Components).
>>
>> 3. Again this is a personal preference, but I always use
>> connection.Execute for INSERTS,UPDATE, and DELETES. Your example used
>> on AddNew and one cnn.Execute.
>>
>> 4. I find a object referencing style and stick with it.
>> rs.Fields("fieldname") and rs!fieldname are both a little dated.
>> rs("fieldname"), or rs(variable_holding_field_name) or
>> rs(integer_field_ndx) seem to be cultural standards now.
>>
>> 5. I loathe to admit it, ADO.NET is also a much stronger tool for
>> web/client apps for things like databinding. With it data grids are
>> bound to disconnected recordsets, which execute discrete INSERTS,
>> UPDATES, AND DELETE underneath,...again avoiding the updateable cursor.
>>
>> Oh, and PostgreSQL via ODBC,...
>> it has never been strong on the updateable cursor/dynamic cursor thing.
>>
>>
>>
>> linuxgps wrote:
>>
>>> Hi all,
>>>
>>> I'm a beginner to MS Windows.
>>> I began to to test VBA 6.0(SP6) with Postgresql 8.1 -with odbc- on
>>> WIN2K(SP4).
>>> For the test (accessing postgres db thru visual basic) I use the
>>> code, given by the distro (psqlODBC HOWTO- Visual Basic).
>>> The first problem I've encounted that the code in the given test
>>> snippet is not full functioning:
>>> "rs.Refresh"  doesn't implemented ?
>>> I use in the "Project Preferences" "Microsoft ActiveXData Objects 2.1
>>> library (msado21.tlb)
>>>
>>> I've installed some other MS stuff on the machine, and now the
>>> Postgres database call makes a memory exception and crashes.
>>>
>>> Q 1.:  Is this general, or some libraries are wrong on my system ?
>>> Q 2.: Which MS tools are to control/update the msado-libraries
>>> Q.3.: Which msado or similars are necessary to connect with visual
>>> basic to postgres ?
>>>
>>> thank  you in advance
>>> testuser vba
>>>
>>> -----------------
>>>
>>> Sub Main()
>>> Dim cn as New ADODB.Connection
>>> Dim rs as New ADODB.Recordset
>>>
>>>  'Open the connection
>>>  cn.Open "DSN=<MyDataSourceName>;" & _
>>>          "UID=<MyUsername>;" & _
>>>          "PWD=<MyPassword>;" & _
>>>          "Database=<MyDatabaseName>"
>>>
>>>  'For updateable recordsets we would typically open a Dynamic recordset.
>>>  'Forward Only recordsets are much faster but can only scroll forward
>>> and  'are read only. Snapshot recordsets are read only, but scroll in
>>> both  'directions.  rs.Open "SELECT id, data FROM vbtest", cn,
>>> adOpenDynamic
>>>
>>>  'Loop though the recordset and print the results
>>>  'We will also update the accessed column, but this time access it
>>> through  'the Fields collection. ISO-8601 formatted dates/times are
>>> the safest IMHO.
>>>  While Not rs.EOF
>>>    Debug.Print rs!id & ": " & rs!data
>>>    rs.Fields("accessed") = Format(Now, "yyyy-MM-dd hh:mm:ss")
>>>    rs.Update
>>>    rs.MoveNext
>>>  Wend
>>>
>>>  'Add a new record to the recordset
>>>  rs.AddNew
>>>  rs!id = 76
>>>  rs!data = 'More random data'
>>>  rs!accessed = Format(Now, "yyyy-MM-dd hh:mm:ss")
>>>  rs.Update
>>>
>>>  'Insert a new record into the table
>>>  cn.Execute "INSERT INTO vbtest (id, data) VALUES (23, 'Some random
>>> data');"
>>>
>>>  'Refresh the recordset to get that last record...
>>>  rs.Refresh
>>>
>>>  'Get the record count
>>>  rs.MoveLast
>>>  rs.MoveFirst
>>>  MsgBox rs.RecordCount & " Records are in the recordset!"
>>>
>>>  'Cleanup
>>>  If rs.State <> adStateClosed Then rs.Close
>>>  Set rs = Nothing
>>>  If cn.State <> adStateClosed Then cn.Close
>>>  Set cn = Nothing
>>> End Sub
>>>
>>>
>>>
>>>
>>> ---------------------------(end of broadcast)---------------------------
>>> TIP 9: In versions below 8.0, the planner will ignore your desire to
>>>       choose an index scan if your joining column's datatypes do not
>>>       match
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 6: explain analyze is your friend
>>
>>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>       choose an index scan if your joining column's datatypes do not
>       match

Attachment