Ich hab da mal ein Problem:
Eine Anwendung liest aus einem Active-Directory die Benutzergruppen und die Benutzer aus. Diese Daten sollen in eine Interbase-DB geschrieben werden.
Das Problem tritt an der DB-Schnittstelle auf, sobald Umlaute in dem Gruppennamen oder im Benutzernamen sind.
Python : ActivePython 2.3.3
win32all: build 200
kinterbasdb 3.1 pre 7
bekomme folgenden Fehler :
512 Domänen-Admins
Traceback (most recent call last):
File "C:\devel\test\unitest.py", line 14, in ?
cur.execute(stm)
File "C:\Python23\Lib\site-packages\kinterbasdb\__init__.py", line 1553, in execute
self.description = _k.execute(self._C_cursor, sql, params)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 54: ordinal not in range(128)
hat jemand 'ne idee??
mfg, querdenker
Python, Interbase und Unicode
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
danke, hat geholfen!
mfg, querdenker
mfg, querdenker
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Hi Querdenker,
wie hast du denn deine Tabellen definiert? Bei mir sieht das so aus
DB: FireBird 1.5RC8
OS: Fedora Core 1
Hans
wie hast du denn deine Tabellen definiert? Bei mir sieht das so aus
Code: Alles auswählen
SQL> show table country;
COUNTRY_NO SMALLINT Nullable
COUNTRY_ISO_CODE CHAR(3) Nullable
COUNTRY_ADR VARCHAR(3) Nullable
COUNTRY_SUPRESS_ZERO SMALLINT Nullable DEFAULT 0
COUNTRY_NAME VARCHAR(30) CHARACTER SET ISO8859_1 Nullable
CONSTRAINT INTEG_41:
CHECK (COUNTRY_SUPRESS_ZERO BETWEEN 0 AND 1)
SQL>
OS: Fedora Core 1
Hans
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Hi Hans,
Die char / varchars sind alle WIN1252.
DB : Interbase 6.5 <= ja, das geht mit dem Kinterbasdb!
hab das defaultencoding umgestellt, da die Anwenoung bei uns in der Serverfarm auf einem einzigen Rechner läuft und daher nicht weitergegeben wird!
das war der test, ausgabe in der Console ist relativ egal, da die Daten nachher über ein Frontend wieder weiterverarbeitet werden.
Für mich war wichtig, das die PyUnicode-Strings aus win32net weitergereicht werden können.
MfG, querdenker
Die char / varchars sind alle WIN1252.
DB : Interbase 6.5 <= ja, das geht mit dem Kinterbasdb!
hab das defaultencoding umgestellt, da die Anwenoung bei uns in der Serverfarm auf einem einzigen Rechner läuft und daher nicht weitergegeben wird!
Code: Alles auswählen
for item in my_groups:
group=item.get('name').encode("latin-1")
print item.get('group_id'),
stm="select bueroname from t_ctx_buero where bueroname='"+lower(group)+"'"
cur.execute(stm)
data=cur.fetchone()
if data is None:
print "\n"
else:
ngroup= data[0]
print ngroup
users=unifunc.get_users(server,ngroup)
Für mich war wichtig, das die PyUnicode-Strings aus win32net weitergereicht werden können.
MfG, querdenker