By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,617 Members | 1,896 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,617 IT Pros & Developers. It's quick & easy.

Comment acceder a un champ de bdd par son nom, (ou acces a un tuplede tuples)

P: n/a
bonjour

je me connecte à une base de données interbase/firebird en utilisant,
KinterbasDB
http://kinterbasdb.sourceforge.net/ pour ceux que ca interesse

mais je pense que le probleme est le meme quel que soit la bdd

j'aimerais acceder a un champs par sont nom plutot que par son index
dans le record en cours, comme je fais maintenent

la prop description du curseur renvoye le tuple de tuple suivant
(('PATIENTID', <type 'str'>, 180, 180, 0, 0, True),
('ORIGINALPATIENTID', <type 'str'>, 60, 60, 0, 0, True), ('CENTERID',
<type 'int'>, 11, 4, 0, 0, True), ('NAME', <type 'str'>, 452, 452, 0, 0,
True), ('FIRSTNAME', <type 'str'>, 452, 452, 0, 0, True), ('BIRTH',
<type 'int'>, 6, 2, 0, 0, True), ('SEXE', <type 'int'>, 6, 2, 0, 0,
True), ('ENTRYDATE', <type 'DateTime'>, 10, 4, 0, 0, True), ('COMMENTS',
<type 'str'>, 0, 8, 0, 2, True), ('LASTMODIFDATE', <type 'DateTime'>,
10, 4, 0, 0, True), ('DEP', <type 'int'>, 6, 2, 0, 0, True),
('QUESTIOID', <type 'int'>, 11, 4, 0, 0, True), ('CREADATE', <type
'DateTime'>, 22, 8, 0, 0, True))

le row courant est lui un tuple simple:
('02-0000', None, 2, None, None, 1961, 1, <DateTime object for
'2002-06-16 00:00:00.00' at 90c860>, 'sevrage effectu\xe9\x00\x00',
<DateTime object for '2002-07-16 00:00:00.00' at 932f20>, None, 520,
<DateTime object for '2004-07-05 00:00:00.00' at 91f4e0>)

comment, par exemple, acceder au 3em element du tuple (en l'occurence le
nombre 2) en utilisant le nom CENTERID qui est le premier element du
3eme element du tuple qui decrit la strucure ?

j'espere que je me suis fais comprendre

merci d'avance...
--
http://www.rootsaka.com
Jul 18 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
richard <ri*****@nullpart.org> wrote in message news:<ch**********@reader1.imaginet.fr>...
bonjour

je me connecte à une base de données interbase/firebird en utilisant,
KinterbasDB
http://kinterbasdb.sourceforge.net/ pour ceux que ca interesse

mais je pense que le probleme est le meme quel que soit la bdd

j'aimerais acceder a un champs par sont nom plutot que par son index
dans le record en cours, comme je fais maintenent

la prop description du curseur renvoye le tuple de tuple suivant
(('PATIENTID', <type 'str'>, 180, 180, 0, 0, True),
('ORIGINALPATIENTID', <type 'str'>, 60, 60, 0, 0, True), ('CENTERID',
<type 'int'>, 11, 4, 0, 0, True), ('NAME', <type 'str'>, 452, 452, 0, 0,
True), ('FIRSTNAME', <type 'str'>, 452, 452, 0, 0, True), ('BIRTH',
<type 'int'>, 6, 2, 0, 0, True), ('SEXE', <type 'int'>, 6, 2, 0, 0,
True), ('ENTRYDATE', <type 'DateTime'>, 10, 4, 0, 0, True), ('COMMENTS',
<type 'str'>, 0, 8, 0, 2, True), ('LASTMODIFDATE', <type 'DateTime'>,
10, 4, 0, 0, True), ('DEP', <type 'int'>, 6, 2, 0, 0, True),
('QUESTIOID', <type 'int'>, 11, 4, 0, 0, True), ('CREADATE', <type
'DateTime'>, 22, 8, 0, 0, True))

le row courant est lui un tuple simple:
('02-0000', None, 2, None, None, 1961, 1, <DateTime object for
'2002-06-16 00:00:00.00' at 90c860>, 'sevrage effectu\xe9\x00\x00',
<DateTime object for '2002-07-16 00:00:00.00' at 932f20>, None, 520,
<DateTime object for '2004-07-05 00:00:00.00' at 91f4e0>)

comment, par exemple, acceder au 3em element du tuple (en l'occurence le
nombre 2) en utilisant le nom CENTERID qui est le premier element du
3eme element du tuple qui decrit la strucure ?

j'espere que je me suis fais comprendre

merci d'avance...


Salut Richard,

je fais quelque-chose de tres semblable. Mon idee est la suivante
(attention, je tape tout de tete et je te laisse le soin de tester
toi-meme):

# d'abord il faut extraire une list de tous les noms:
names = [ x[0] for x in cursor_description ]

# ensuite tu bricoles un dictionnaire avec le row courant:
row = dict(zip(names, current_row))

# tu peux maintenant faire les acces suivants:
center_id = row["CENTERID"]
first_name = row["FIRSTNAME"]
# etc...

Un derniere remarque: la langue officielle de comp.lang.python est
l'anglais. Tu auras donc beaucoup plus de succes si tu traduis tes
messages avant de les envoyer...

Bonne chance,

Jan
Jul 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.