There's not much information there which says much about the ultimate issue. Suffice to say SQLAlchemy itself has no issue with psycopg2 and the string "A & B", attached is a demonstration inserting, querying, updating this value and similar in many ways. Only with a specific test case that demonstrates the issue can anyone on the list here be of any help.
from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() e = create_engine("postgresql://scott:tiger@localhost/test", echo=True) class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) data = Column(String(50)) Base.metadata.drop_all(e) Base.metadata.create_all(e) s = Session(e) s.add(A(data="A & B")) s.commit() assert s.query(A.data).all() == [("A & B",)] assert s.query(A.data).filter_by(data="A & B").all() == [("A & B",)] a2 = A(data="some new data") s.add(a2) s.commit() a2.data = "B & C" s.commit() assert [a.data for a in s.query(A).order_by(A.id).all()] == ["A & B", "B & C"] On Aug 7, 2011, at 2:19 PM, Krishnakant Mane wrote: > > I really don't think that's the issue. > no eval is used. > Secondly it did work through psycopg2 directly with postgresql > If some would have the kindness to look at the code I am paisting it here. > Sorry for making it long, it contains comments to explain the situation. > > def xmlrpc_setAccount(self,queryParams,client_id): > ''' > Purpose : Adds new account i.e row to the account table in the > database > Parameters : It expects a list of queryParams which > contains[suggestedcode(datatype:integer),groupcode(datatype:integer),subgroupcode(datatype:integer),accountname(datatype:text)openingbalance(datatype:numeric),openingdate(datatype:timestamp),balance(datatype:numeric)] > Returns : Boolean > Description : Querys the account table and add new row. > To add account first time check wether max of accountcode if > there is nothing in that coloumn maxAccountcode will increament by 1 and if > there is max value then go to else condition and increament by 1 > It takes which is a foreign key from the group table,account > name which is name of the account, and openingbalance which is previous > financial year balance amount and opening date i.e when a new account is > added (it always takes the todays date), balance is the balance amount > remaining with that account. > When record entered successfully it returns True else returns > False. > ''' > connection = dbconnect.engines[client_id].connect() > Session = dbconnect.session(bind=connection) > account_creation_date = str(strftime("%Y-%m-%d %H:%M:%S")) > if queryParams[5] != 0: > > Session.add(dbconnect.Account(queryParams[5],queryParams[0],queryParams[1],queryParams[2],queryParams[3],account_creation_date,queryParams[4])) > else: > maxAccountCode = 0 > maxAccountCode = > Session.query(func.count(dbconnect.Account.accountcode)).scalar() > if maxAccountCode == None: > maxAccountCode = 0 > maxAccountCode = int(maxAccountCode) + 1 > else: > maxAccountCode = int(maxAccountCode) + 1 > > > Session.add(dbconnect.Account(maxAccountCode,queryParams[0],queryParams[1],queryParams[2],queryParams[3],account_creation_date,queryParams[4])) > Session.commit() > Session.close() > > > Mind you, it is an xmlrpc call. > and the constructor of the table instance takes all the parameter hence the > way in which session.add is coded. > Happy hacking. > Krishnakant. > > > On 07/08/11 21:11, Michael Bayer wrote: >> >> >> On Aug 7, 2011, at 8:19 AM, Krishnakant Mane wrote: >> >>> Hello all. >>> This might be interesting. >>> I don't know if we are doing some thing wrong. >>> We use session.query on a table and for adding records we use the orm. >>> But look at the forwarded email, I don't know what's wrong. >>> happy hacking. >> >> you'd need to know what happens when someone enters "A & B". If for example >> you're calling eval() on that or something, "&" is a Python operator. >> >> >> >>> Krishnakant. >>> >>> >>> >>> >>> -------- Original Message -------- >>> Subject: [Gnukhata-devel] not able to put & in account name field >>> Date: Sun, 7 Aug 2011 17:35:51 +0530 >>> From: ankita shanbhag <ankita.shanbhag...@gmail.com> >>> To: gnukhata dev <gnukhata-de...@cis-india.org> >>> >>> Hello All, >>> >>> This may sound silly but entering & in account field eg "A & B" can >>> cause difficulty in retrival of that account from database. >>> >>> I tried to query the Account table using postgres and its able to >>> fetch record properly. >>> >>> I feel its a problem of SqlAlchemy.I am afraid if we want '&' then we >>> have to look through rpc_account.py specially getAccount!! >>> >>> Thanking you. >>> >>> >>> -- >>> "FOSS is not just about coding..its more of collaborative project >>> management" >>> >>> ---- >>> ankita shanbhag >>> _______________________________________________ >>> Gnukhata-devel mailing list >>> gnukhata-de...@cis-india.org >>> http://lists.cis-india.org/mailman/listinfo/gnukhata-devel >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sqlalchemy" group. >>> To post to this group, send email to sqlalchemy@googlegroups.com. >>> To unsubscribe from this group, send email to >>> sqlalchemy+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/sqlalchemy?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> To unsubscribe from this group, send email to >> sqlalchemy+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/sqlalchemy?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalchemy@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.