[pyar] Ayuda con MS SQL

Luis A. Garcia lagsistemas en gmail.com
Jue Feb 24 13:38:49 ART 2011



>> Tengo un problema que no puedo resolver :
>>
>> Tengo este script:
>>
>> # Defino Registro Clase (reg)
>> class reg(object):
>>       def __init__(self, cursor, registro):
>>             for (attr, val) in zip((d[0] for d in cursor.description),
>> registro):
>>                   setattr(self, attr, val)
>>
>> # conexion Bases
>> conn = pymssql.connect(host='localHost', user='gif_user',
>> password='tecnob538', database='web_gif')
>> cursor = conn.cursor()
>> compraventa = 'V'
>> IdTipoComprobante = 10
>>
>> # cursor
>> cursor.execute('insert into Comprobante values(%s, %s)' % \
>>         (compraventa, IdTipoComprobante))
>> conn.commit()
>>
>>
>> y me da este error,
>>
>> Traceback (most recent call last):
>>   File "C:/Tecnobrain/Python/dev/Sk-Gif/sql1.py", line 15, in <module>
>>     (compraventa, IdTipoComprobante))
>>   File "C:\Python26\lib\site-packages\pymssql.py", line 196, in execute
>>     raise OperationalError, e[0]
>> OperationalError: SQL Server message 128, severity 15, state 1, line 1:
>> El nombre 'V' no es válido en este contexto. Sólo se permiten constantes,
>> expresiones o variables. No se permiten nombres de columna.
>
> Porque seguramente el insert se está generando como:
>
> INSERT INTO COMPROBANTE VALUES V, 10
>
> y debería ser:
>
> INSERT INTO COMPROBANTE VALUES 'V', 10
>
>
> ¿Te das cuenta el problema?
>
> saludos.
>
 funciona de esta forma=
cursor.execute("insert into Comprobante values('%s', '%s')" % \
       (compraventa, IdTipoComprobante))

Gracias a todos
Saludos
Luis
 


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5904 (20110224) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com






More information about the pyar mailing list