Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Zlatko Matic
You mean VB.NET ?
- Original Message - 
From: Keith Worthington [EMAIL PROTECTED]
To: Zlatko Matic [EMAIL PROTECTED]
Cc: pgsql-general@postgresql.org; [EMAIL PROTECTED]
Sent: Wednesday, May 04, 2005 5:58 AM
Subject: Re: [INTERFACES] calculated identity field in views, again...


Zlatko Matic wrote:
I asked this question several weeks ago, but nobody proposed a solution, 
so I am repeating the same question again...
I have an MS Access front-end for a database on PostgreSQL.
I could use pass-through queries as record sources for reports and it 
works fine...
Unfortunately, MS Access doesn't allow pass-through queries to be records 
sources for subforms.
Therefore I tried to base subforms on regular JET queries on linked 
tables. It was too slow...
Then I tried to base subforms on DAO recordset code generated from 
pass-through QueryDef objects. Although it worked, it was very 
unstable...

Now it seems to me that POstgreSQL views are the best solution, but 
Access considers views as tables (!) and needs column with unique values.
All those views are complicated queries on several tables, so I can't use 
any table's column as primary key. I need a calculated column in the view 
that Access will consider as primary key column.
In regular tables, I use bigserial field, but how can I create calculated 
bigserial column in a view ?

Thanks.
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if 
your
 joining column's datatypes do not match


Another option is to toss the MS Access altogether and program the front 
end entirely in VB.  That is what we did.

--
Kind Regards,
Keith
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
 subscribe-nomail command to [EMAIL PROTECTED] so that your
 message can get through to the mailing list cleanly


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Zlatko Matic
I will try...if it will be useless, I will quite. Then the only solution 
will be make-table query based on nested pass-through query, so I will be 
working on local JET tables that will be refreshed from server on each 
session. But I would like to avoid local tables, if possible...

How do I create sequence ?

- Original Message - 
From: Greg Stark [EMAIL PROTECTED]
To: Zlatko Matic [EMAIL PROTECTED]
Cc: pgsql-general@postgresql.org; [EMAIL PROTECTED]
Sent: Wednesday, May 04, 2005 7:11 AM
Subject: Re: [GENERAL] [INTERFACES] calculated identity field in views, 
again...


Zlatko Matic [EMAIL PROTECTED] writes:
In regular tables, I use bigserial field, but how can I create calculated
bigserial column in a view ?
You would have to create a sequence and reference it with
nextval('sequencename') in your view. But I doubt very much that it will 
do
anything useful.

It sounds like Access wants to be able to update records by looking them 
up by
primary key. In that case assigning a new value in your view will make
Postgres make up a brand new number that is utterly useless for finding 
the
record again later.

--
greg
---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster

---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Keith Worthington
 Zlatko Matic wrote:

 I asked this question several weeks ago, but nobody proposed a
 solution, so I am repeating the same question again...
 I have an MS Access front-end for a database on PostgreSQL.
 I could use pass-through queries as record sources for reports and it
 works fine...
 Unfortunately, MS Access doesn't allow pass-through queries to be
 records sources for subforms.
 Therefore I tried to base subforms on regular JET queries on linked
 tables. It was too slow...
 Then I tried to base subforms on DAO recordset code generated from
 pass-through QueryDef objects. Although it worked, it was very
 unstable...

 Now it seems to me that POstgreSQL views are the best solution, but
 Access considers views as tables (!) and needs column with unique
 values.
 All those views are complicated queries on several tables, so I can't
 use any table's column as primary key. I need a calculated column in
 the view that Access will consider as primary key column.
 In regular tables, I use bigserial field, but how can I create
 calculated bigserial column in a view ?

 Thanks.

 ---(end of 
broadcast)---
 TIP 9: the planner will ignore your desire to choose an index scan if
 your
  joining column's datatypes do not match



 Another option is to toss the MS Access altogether and program the
 front end entirely in VB.  That is what we did.

 --
 Kind Regards,
 Keith

 Zlatko Matic wrote:
 You mean VB.NET ?

Actually we wrote our interface using VB6.
--
Kind Regards,
Keith
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Bruno Wolff III
On Wed, May 04, 2005 at 10:56:25 +0200,
  Zlatko Matic [EMAIL PROTECTED] wrote:
 I will try...if it will be useless, I will quite. Then the only solution 
 will be make-table query based on nested pass-through query, so I will be 
 working on local JET tables that will be refreshed from server on each 
 session. But I would like to avoid local tables, if possible...

Didn'y you ask this same question a week or two ago? I am pretty sure
someone told you how to make access work with a view.

 How do I create sequence ?

You can't create a sequence for a view. You would need to have it in a
table that is joined as part of the view.

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Greg Stark
Bruno Wolff III [EMAIL PROTECTED] writes:

  How do I create sequence ?
 
 You can't create a sequence for a view. You would need to have it in a
 table that is joined as part of the view.

Sure you can. You can have any expression you want, including nextval('seq')
in your view. The problem is that every time you query it it will provide
different numbers. I can't see that being useful.

-- 
greg


---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Jeff Eckermann
--- Zlatko Matic [EMAIL PROTECTED] wrote:
 I asked this question several weeks ago, but nobody
 proposed a solution, so 
 I am repeating the same question again...
 I have an MS Access front-end for a database on
 PostgreSQL.
 I could use pass-through queries as record sources
 for reports and it works 
 fine...
 Unfortunately, MS Access doesn't allow pass-through
 queries to be records 
 sources for subforms.

Unless you use unbound form/controls.  Which means
handling everything in code, which might work out best
for you, depending on what you want (this is
effectively equivalent to the VB-only option which
someone else mentioned).

 Therefore I tried to base subforms on regular JET
 queries on linked tables. 
 It was too slow...
 Then I tried to base subforms on DAO recordset code
 generated from 
 pass-through QueryDef objects. Although it worked,
 it was very unstable...
 
 Now it seems to me that POstgreSQL views are the
 best solution, but Access 
 considers views as tables (!) and needs column with
 unique values.

AFAIK a composite key (combination of several columns)
should work ok for a primary key for Access.  When
linking to the view, just select the columns you want
to use.  Or are you saying that you tried this, and it
didn't work?

Alternatively, you could try including in your view
definition the oid column for each of the constituent
tables.  If I understand right, oids are globally
unique within your database.  This assumes that you
have created your tables with oids, which may not be
the case.

Basing a subform on a mult-table join sounds like odd
database design.  Perhaps if you can explain more
about what you are trying to do, people can offer more
suggestions.

 All those views are complicated queries on several
 tables, so I can't use 
 any table's column as primary key. I need a
 calculated column in the view 
 that Access will consider as primary key column.
 In regular tables, I use bigserial field, but how
 can I create calculated 
 bigserial column in a view ?
 
 Thanks. 
 
 
 ---(end of
 broadcast)---
 TIP 9: the planner will ignore your desire to choose
 an index scan if your
   joining column's datatypes do not match
 

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Bruno Wolff III
On Wed, May 04, 2005 at 11:47:12 -0400,
  Greg Stark [EMAIL PROTECTED] wrote:
 Bruno Wolff III [EMAIL PROTECTED] writes:
 
   How do I create sequence ?
  
  You can't create a sequence for a view. You would need to have it in a
  table that is joined as part of the view.
 
 Sure you can. You can have any expression you want, including nextval('seq')
 in your view. The problem is that every time you query it it will provide
 different numbers. I can't see that being useful.

That is more or less what I meant. You can't usefully tie a sequence directly
to a view, the way you can tie one to a table.

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-04 Thread Zlatko Matic
Hello. Thanks for answers...
After considering all proposed, I think that it is probably possible to give 
MS Acces some composite primary keys while linking views as tables, in order 
to help Access not to fall into #deleted#, but it would take some extra 
time to experiment with every view.
In meantime, I successfully implemented solution with local tables. Append 
queries based on pass-through queries are triggered and local tables are 
refreshed.  It seems to be fast and reliable...
Thank you anyway, maybe I will try something with views next time...


- Original Message - 
From: Jeff Eckermann [EMAIL PROTECTED]
To: Zlatko Matic [EMAIL PROTECTED]; 
pgsql-general@postgresql.org; [EMAIL PROTECTED]
Sent: Wednesday, May 04, 2005 6:01 PM
Subject: Re: [GENERAL] [INTERFACES] calculated identity field in views, 
again...


--- Zlatko Matic [EMAIL PROTECTED] wrote:
I asked this question several weeks ago, but nobody
proposed a solution, so
I am repeating the same question again...
I have an MS Access front-end for a database on
PostgreSQL.
I could use pass-through queries as record sources
for reports and it works
fine...
Unfortunately, MS Access doesn't allow pass-through
queries to be records
sources for subforms.
Unless you use unbound form/controls.  Which means
handling everything in code, which might work out best
for you, depending on what you want (this is
effectively equivalent to the VB-only option which
someone else mentioned).
Therefore I tried to base subforms on regular JET
queries on linked tables.
It was too slow...
Then I tried to base subforms on DAO recordset code
generated from
pass-through QueryDef objects. Although it worked,
it was very unstable...
Now it seems to me that POstgreSQL views are the
best solution, but Access
considers views as tables (!) and needs column with
unique values.
AFAIK a composite key (combination of several columns)
should work ok for a primary key for Access.  When
linking to the view, just select the columns you want
to use.  Or are you saying that you tried this, and it
didn't work?
Alternatively, you could try including in your view
definition the oid column for each of the constituent
tables.  If I understand right, oids are globally
unique within your database.  This assumes that you
have created your tables with oids, which may not be
the case.
Basing a subform on a mult-table join sounds like odd
database design.  Perhaps if you can explain more
about what you are trying to do, people can offer more
suggestions.
All those views are complicated queries on several
tables, so I can't use
any table's column as primary key. I need a
calculated column in the view
that Access will consider as primary key column.
In regular tables, I use bigserial field, but how
can I create calculated
bigserial column in a view ?
Thanks.
---(end of
broadcast)---
TIP 9: the planner will ignore your desire to choose
an index scan if your
  joining column's datatypes do not match
__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-03 Thread Keith Worthington
Zlatko Matic wrote:
I asked this question several weeks ago, but nobody proposed a solution, 
so I am repeating the same question again...
I have an MS Access front-end for a database on PostgreSQL.
I could use pass-through queries as record sources for reports and it 
works fine...
Unfortunately, MS Access doesn't allow pass-through queries to be 
records sources for subforms.
Therefore I tried to base subforms on regular JET queries on linked 
tables. It was too slow...
Then I tried to base subforms on DAO recordset code generated from 
pass-through QueryDef objects. Although it worked, it was very unstable...

Now it seems to me that POstgreSQL views are the best solution, but 
Access considers views as tables (!) and needs column with unique values.
All those views are complicated queries on several tables, so I can't 
use any table's column as primary key. I need a calculated column in the 
view that Access will consider as primary key column.
In regular tables, I use bigserial field, but how can I create 
calculated bigserial column in a view ?

Thanks.
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match

Another option is to toss the MS Access altogether and program the front 
end entirely in VB.  That is what we did.

--
Kind Regards,
Keith
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [GENERAL] [INTERFACES] calculated identity field in views, again...

2005-05-03 Thread Greg Stark
Zlatko Matic [EMAIL PROTECTED] writes:

 In regular tables, I use bigserial field, but how can I create calculated
 bigserial column in a view ?

You would have to create a sequence and reference it with
nextval('sequencename') in your view. But I doubt very much that it will do
anything useful.

It sounds like Access wants to be able to update records by looking them up by
primary key. In that case assigning a new value in your view will make
Postgres make up a brand new number that is utterly useless for finding the
record again later.

-- 
greg


---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster