xml-rpc - adodb - None type - DateTime type

infidel saint.infidel at gmail.com
Fri Oct 28 12:16:57 EDT 2005


> I can replace all None values with the string 'Null', there's no
> problem, but I can't detect the DateTime type object I retrieve from
> the database.
>
> I have something like this:
> def xmlrpc_function():
>     conn = adodb.NewADOConnection('postgres')
>     conn.Connect(host,user,password,database)
>     rs = conn.Exec("select * from table")
>     result = []
>     i = 0
>     while not rs.EOF:
>         row = rs.GetRowAssoc(False)
>         for key, value in row.items():
>             if value==None:
>                 row[key]='Null'
>         result.append(row)
>         i = i + 1
>         rs.MoveNext()
>     rs.Close()
>
>     print result
>     return result
>
> The problem here is that if row[key] == <type 'DateTime' object
> etc...>, then I don't know what to do for detect it and make the
> appropriate change to string.
>
> Console output:
> [{'name': 'Null', 'date': <DateTime object for '2005-09-01 00:00:00.00'
> at 1515f60>}]
>
> If you consult the python manual, you'll see that there's no 'DateTime'
> type object, so I can't do something like:
>
> if value==DateTimeType:
>     ...
>
> I only need to know which type of data is a field for make the change
> according to what can I pass through the xml-rpc.

Well, there is the possibility of passing null values through xml-rpc.
I believe there is an optional keyword argument in some of the
xmlrpclib functions to allow it.  Basically it translates None to
<nil/> in the xml.

The DateTime type must be defined somewhere.  Is it an adodb type?  If
so, you could do something like this:

if type(value) == adodb.DateTime:
    ...




More information about the Python-list mailing list