here is the summary of my problems with turbogears and mssql server databases.

my odbc.ini in /etc/odbc.ini like this:
[test]
Driver = /usr/lib/odbc/libtdsodbc.so
Description = test
Server = 192.168.0.10
Port = 1433
Database = test
client charset = WINDOWS-1254
TDS_Version = 8.0

and my connection string in development.ini :
sqlalchemy.url = mssql+pyodbc://testuser:12345@test


when I run paster setup-app command, tha tables created ok but when running bootstrap.py, if there are any non ascii character I get errors.


sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', '[42000] [FreeTDS][SQL Server]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 5: The parameter name is invalid. (8005) (SQLExecDirectW)') 'INSERT INTO tg_user (user_name, email_address, display_name, password, created) OUTPUT inserted.user_id VALUES (?, ?, ?, ?, ?)' ('manager', '[email protected]', 'Example manager *\xc4\x9e\xc3\x9c\xc5\x9e\xc4\xb0\xc3\x96\xc3\x87*', '77551410b646190fb691dd78085620e905bbdbbfc4a1cd23c0f76b7b71dd1a0d00cf005b2ef164e90ee61b6c9b6b9543a5742a5094e40d4123b6d751d5c122bc', datetime.datetime(2011, 12, 19, 11, 27, 8, 957996))


I've edited bootstrap.py to put some non-asci chars to strings.

        u = model.User()
        u.user_name = u'manager'
        u.display_name = u'Example manager *ĞÜŞİÖÇ*'
        u.email_address = u'[email protected]'
        u.password = u'managepass'


I think I need to put some charset encodings of the database to somewhere but I'm at a loss.

working with postgresql and utf8 database is ok, but I need to use an existing mssql database with windows-1254 charset, that's why I'm trying to solve this on a test database first.




-------- Original Message --------
Subject: RE: tg2 and mssql
Date: Mon, 19 Dec 2011 10:24:58 +0200
From: Alon Nisser <[email protected]>
To: Timuçin Kızılay <[email protected]>

Hey
Lets take this back to the tg google group so bigger experts than me could help you But I don’t think this a codepage problem (maybe this is, I didn’t see the error log, btw I'm using utf8 in tg and the mssql is another encoding and having no problem), bootstrap.py problems hints to another direction
In order to find out the problem please post the error log you are getting

So repost this in the tg group with the full error log, and hopefully me or someone else could help you out

-----Original Message-----
From: Timuçin Kızılay [mailto:[email protected]]
Sent: Monday, December 19, 2011 10:03 AM
To: alonn
Subject: Re: tg2 and mssql

Hello,

I have full administrative access to ms sql server and the user I use have dbowner role in that database.
creating the tables is not problem.
I have used this connection string:
sqlalchemy.url = mssql+pyodbc://testuser:12345@test

and the table creation is ok now. But when I run paster setup-app command, after table creation, runs bootstrap.py and I'm getting erros (I think) its because of codepage problems.

Can you send me an example odbc.ini file to set the charset correctly?
My sql server is using windows-1254 charset and after finishing testing with a newly quickstarted project, I need to use an existing production database that I can not change the charset because it's being used by another application. I can add extra tables but can not change the existing tables so I need to use the existing codepage.




On 16-12-2011 21:26, alonn wrote:
1. I just finished a project with mssql and tg2.1.3. after some
wrestling works fine with sql alchemy , tg2 etc.
2. you should install pyodbc inside the project for this to work 3. do
you have full write access to the mssql db and in liberty of changing
it? since tg2 with authorization and autentication needs to build some
background tables. if (like me) you can already write to specific
tables in the mssql db but not in liberty of changing it - you'll have
to configure tg2 with 2 databases. here's a nice post on
that:http://www.blog.pythonlibrary.org/2009/06/13/using-multiple-
databases-in-turbogears-2/  also be warned - there are some problems
not specified here..
4. to get the model of the already generated tables in mssql besides
using reflection and autoload - that from my exprience didn't work as
expected with mssql (unlike with mysql - where this works fine) -
instead I used sqlautocode to auto generate the tables in sqlalchemy
declarative style.
http://turbogears.org/2.1/docs/main/Utilities/sqlautocode.html
5. my sqlalchemy.url connection string didn't involve pydobc just
mssql:user:blabla etc  maybe this is a problem

good luck!

On 16 דצמבר, 17:18, Timuçin Kızılay<[email protected]>  wrote:
On 15-12-2011 14:14, Alessandro Molina wrote:





2011/12/15 Timuçin Kızılay<[email protected]>:
Hello,

I have to write an application using ms sql server database. I have
to use an existing database that being used in the company and my
app should do some data entry and lots of reporting.

I'd like to use turbogears because the other option is to use .net.

I have some questions because I have only used postgresql with
turbogears before.

-first question is codepage issues. in tg I'll use utf8 and the
mssql database is not using unicode but using another codepage. I
think this will give me problems.

Using SQLA you can expose all your data using Unicode column, so
your application will just work on unicode objects without caring
too much about their representation on the database side.

When you connect to the engine you can specify which encoding that
database will use to represent strings, then on python you will just
get unicode strings.

- second: the database is already created and full of data so is
there any way to get the table definitions in model files automagicaly?

Yes, you can use table reflection.
The quickstarted project already has some commented lines of code
inside the model to guide you at setting it up.

You can even use sqlalchemy-migrate to autogenerate the model from
the tables, which gives you a little bit more control over your models.

- third: is there any sample code using mssql databases?

If you use SQLAlchemy (which is the default database layer for TG)
any example around should work correctly even on mssql.

I'm familiar with SQLAlchemy (in fact, SA is a good reason to use
tg2) and I have developed apps with tg2 and SA on postgresql but I'm
at a loss here to connect to ms sql server

I think I need a step by step guide to what libraries to install and
what connection string in development.ini file.

I'm getting this error when I run paster setup-app development.ini on
a newly quicstarted app to connect mssql database:

----------

sqlalchemy.exc.DBAPIError: (Error) ('08001', '[08001]
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0)
(SQLDriverConnectW)') None None
----------

and my connection string in developmenbt.ini is this:

sqlalchemy.url = mssql+pyodbc://testuser:[email protected]:1433/test

I'm running TG2 on linux. (xubuntu 11.10 x64)-הסתר טקסט מצוטט-

-הראה טקסט מצוטט-


--
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to