Re: [PDO-Users]pdo/pgdb insert

pythondbo-users-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Wed, 21 Jan 2004 17:09:03 +0200
Newsgroups gmane.comp.python.db.pdo.user
Message-ID <[email protected]>
Hi,

I did abit more testing and it seems it is just not calling
commit() after an update/insert. I changed these 2 classes
in pdo.py by just adding a commit line and it works. The
affected rows  is still 'None' because pgdb doesn't return
the affected rows when executing a statement..
This is just a temporary fix and I guess it would cause
incompatibility with other db's now.

#class 1
class ParamExecute:
    def __init__(self, parent, Statement, Params):
        self.__cursor = parent.db.cursor()
        try:
            self.affected_rows =
self.__cursor.execute(Statement, Params)
            parent.db.commit()  #line added
        except:
            raise pdo_param_execute_error,
"Paramater-enabled Execute Error: Database specific Error:"
+ str(sys.exc_type) + "\n" + str(sys.exc_value)
            self.affected_rows = 0


#class 2 changed

class SimpleExecute:
    def __init__(self, parent, Statement):
        self.__cursor = parent.db.cursor()
        try:
            self.affected_rows =
self.__cursor.execute(Statement)
            parent.db.commit()  #line added
        except:
            raise pdo_simple_execute_error, "Simple Execute
Error: Database specific Error:" + str(sys.exc_type) + "\n"
+ str(sys.exc_value)
            self.affected_rows = 0

Cheers,
Eugene.

On Wed, 21 Jan 2004 08:49:45 +0200
 pythondbo-users-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
> Hi,
> 
> Thanks very much for the help!! 
> Here is the script I'm using, I'm running python 2.3 and
> postgresql 7.3.3 compiled with gcc 3.2. For testing it
> uses
> a table called 'users' in db 'vv'(username=postgres,
> password=postgres) with 2 fields('username' and
> 'password'). There is one record('root', 'root')
> - Another question, is there any way to get the error
> number and message when a exception is raised..
> 
> Here is the class file with test statements.
> 
> # script start
> 
> import pgdb
> import pdo
> import sys
> 
> 
> class database:
> 
>         host='localhost'
>         username='postgres'
>         password='postgres'
>         db='vv'
> 
>         def connect(self):
>                 try:
>
                        self.dbConnection=pdo.connect("Module=pgdb;user="+self.username+";passwd="+self.password+";db="+self.db)
>                 except pdo.pdo_connection_error:
>                         print "Couldn't connect to
> database"
> 
> 
> 
>         def query(self, statement, param):
>                 try:
>
                        result=self.dbConnection.open(statement,
> param)
>                         return result
>                 except pdo.pdo_resultset_error:
>                         print "Couldn't get resultset"
> 
> 
>         def update(self, statement, param):
>                 try:
>                         
>
                       result=self.dbConnection.execute(statement,
> param)
>                         return result
>                 except pdo.pdo_param_execute_error:
>                         print "Couldn't update: "
> 
> 
>         def close(self):
>                         self.dbConnection.close()
> 
> 
> if __name__=="__main__":
>         db=database()
>         db.connect()
>         username="root"
>         password="root"
>         statement="select * from users where username=%s
> and password=%s"
>         result=db.query(statement, [username, password])
>         print result.row_count()  # this works with
> printing 1
>  
>         statement="insert into users values ('B', 'B')"
>         print db.update(statement, line).affected_rows  #
> this doesn't raise exception and returns None 
>         db.close()
>                   
> #ends script
> 
> 
> Thanks again!!!
> Eugene.
> On Tue, 20 Jan 2004 11:10:56 -0500
>  pythondbo-users-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
> > We'll look into this today - can you give us some more
> > info
> > so that we can reproduce your setup as much as
> possible?
> > 
> > ~Jon Franz
> > NeuroKode Labs, LLC
> > 
> > ----- Original Message ----- 
> > From: <pythondbo-users-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
> > To: <pythondbo-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
> > Sent: Tuesday, January 20, 2004 7:16 AM
> > Subject: [PDO-Users]pdo/pgdb insert
> > 
> > 
> > > Hi,
> > > 
> > > I'm sitting with a problem where I can select but not
> > > insert/update to a postgresql database using pdo.
> Here
> > is
> > > the statement:
> > > result=self.dbConnection.execute("insert into users
> > values
> > > ('B', 'B')")
> > > It doesn't raise an exception and if I check
> > > result.affected_rows it is 'None'
> > > If I execute the statement on the psql command line
> it
> > > works fine and inserts..
> > > 
> > > Thanks for the help...
> > > Eugene
> > > 
> > > ___________________________________________
> > >  Look Good, Feel Good www.healthiest.co.za
> > > 
> > > 
> > > 
> > >
> -------------------------------------------------------
> > > The SF.Net email is sponsored by EclipseCon 2004
> > > Premiere Conference on Open Tools Development and
> > Integration
> > > See the breadth of Eclipse activity. February 3-5 in
> > Anaheim, CA.
> > > http://www.eclipsecon.org/osdn
> > > _______________________________________________
> > > Pythondbo-users mailing list
> > > Pythondbo-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > >
> >
>
https://lists.sourceforge.net/lists/listinfo/pythondbo-users
> > > 
> > 
> > 
> > -------------------------------------------------------
> > The SF.Net email is sponsored by EclipseCon 2004
> > Premiere Conference on Open Tools Development and
> > Integration
> > See the breadth of Eclipse activity. February 3-5 in
> > Anaheim, CA.
> > http://www.eclipsecon.org/osdn
> > _______________________________________________
> > Pythondbo-users mailing list
> > Pythondbo-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> >
>
https://lists.sourceforge.net/lists/listinfo/pythondbo-users
> 
> ___________________________________________
>  Look Good, Feel Good www.healthiest.co.za
> 
> 
> 
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and
> Integration
> See the breadth of Eclipse activity. February 3-5 in
> Anaheim, CA.
> http://www.eclipsecon.org/osdn
> _______________________________________________
> Pythondbo-users mailing list
> Pythondbo-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>
https://lists.sourceforge.net/lists/listinfo/pythondbo-users

______________________________________________________________
http://www.webmail.co.za the South African FREE email service


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn