26-07-2017, 08:45 PM
Buenas tengo un problema pero no se cual es tengo esta funcion para interactuar con mysql:
Conecto a una base de datos access y compongo con los datos la siguiente cadena a insertar en mysql:
Y me da error y no la inserta , sin embargo si copio esa cadena y se la paso a la funcion la inserta correctamente y no se porque de la otra forma no lo hace .
EL codigo para insertar es este :
Me genera esta linea
INSERT INTO `Tabla`( `IdPremio`,`IdColor`,`Maximo`,`Minimo`,`InicioMinimo`,`InicioMaximo`, `Porcentaje`,`Incrementos`,`Dureza`,`ComoPremios`,`Variabilidad`,`ValorInicial`, `IdMaquina`,`ValorBolsa`,`AcumuladoBolsa`,`MaximoActual`,`CuandoMaximo`,`TotalJugadas`, `CuandoPremio`,`FechaHora`,`Modulo`,`Posicion`,`EsSuperPremio`,`Control`, `TopePremio`,`TJ`,`MJ`,`DJ`,`Opciones`,`IncrementoAdicional`, `ProximoIncrementoAdicional`,`CantidadProximoIncrementoAdicional`,`CuandoMaximoTeorico`,`DurezaMaxima`,`enviado`,`ModoOculto`, `avisarAntesDe`,`Grupo`,`avisarEn`,`Pulsos`,`NombreCliente`,`DNICliente`, `PremioClub`,`modificado`) VALUES ('600','16','40','10','10','30','0.5','6','15','15','15','20.11','9','32.39','0.05','12694.29','0','7366.49','ŒŽ','2017-05-26 19:58:45', '4','4','0','0','40','20','3','100','2','0','0','0','7298.48','0',NULL,-1,'1000','0','439.78','2265927',NULL,NULL,0,'2017-05-26 19:58:44')
Pero no la inserta , si la imprimo y la copio y hago una llamada a run_query y le paso como un texto la misma cadena si que la inserta y llevo todo el dia loco con ello , porque de 500 registros me pasa lo mismo con 4 y no me da ninguna informacion de donde puede estar el error
Código:
def run_query(ruta,salon,query=''):
datos = [ruta, Usuario, Password, salon]
try:
conn = MySQLdb.connect(*datos) # Conectar a la base de datos
cursor = conn.cursor() # Crear un cursor
cursor.execute(query) # Ejecutar una consulta
if query.upper().startswith('SELECT'):
data = cursor.fetchall() # Traer los resultados de un select
else:
conn.commit() # Hacer efectiva la escritura de datos
data = 0
cursor.close() # Cerrar el cursor
conn.close() # Cerrar la conexión
return data
except :
return "Error de conexion"
Conecto a una base de datos access y compongo con los datos la siguiente cadena a insertar en mysql:
Y me da error y no la inserta , sin embargo si copio esa cadena y se la paso a la funcion la inserta correctamente y no se porque de la otra forma no lo hace .
EL codigo para insertar es este :
Código:
insertadatos="INSERT INTO `Tabla`(\n `IdPremio`,`IdColor`,`Maximo`,`Minimo`,`InicioMinimo`,`InicioMaximo`,\n `Porcentaje`,`Incrementos`,`Dureza`,`ComoPremios`,`Variabilidad`,`ValorInicial`,\n `IdMaquina`,`ValorBolsa`,`AcumuladoBolsa`,`MaximoActual`,`CuandoMaximo`,`TotalJugadas`,\n `CuandoPremio`,`FechaHora`,`Modulo`,`Posicion`,`EsSuperPremio`,`Control`,\n `TopePremio`,`TJ`,`MJ`,`DJ`,`Opciones`,`IncrementoAdicional`,\n `ProximoIncrementoAdicional`,`CantidadProximoIncrementoAdicional`,`CuandoMaximoTeorico`,\n `DurezaMaxima`,`enviado`,`ModoOculto`,\n `avisarAntesDe`,`Grupo`,`avisarEn`,`Pulsos`,`NombreCliente`,`DNICliente`,\n `PremioClub`,`modificado`)\n VALUES "
datos=insertadatos
while i < final:
iinsert="('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',\n '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,'%s','%s','%s','%s',%s,%s,%s,'%s') ,"\n %(mydata[i][0],mydata[i][1],mydata[i][2],mydata[i][3],mydata[i][4],mydata[i][5],mydata[i][6],mydata[i][7],\n mydata[i][8],mydata[i][9],mydata[i][10],arregla(mydata[i][11]),mydata[i][12],\n arregla(mydata[i][13]),arregla(mydata[i][14]),arregla(mydata[i][15]),\n mydata[i][16],mydata[i][17],elige(mydata[i][18]),mydata[i][19],mydata[i][20],mydata[i][21],mydata[i][22],\n mydata[i][23],mydata[i][24],mydata[i][25],mydata[i][26],mydata[i][27],\n mydata[i][28],mydata[i][29],mydata[i][30],\n mydata[i][31],mydata[i][32],mydata[i][33],formatea(mydata[i][34]),\n formatea(mydata[i][35]),mydata[i][36],mydata[i][37],\n arregla(mydata[i][38]),mydata[i][39],formatea(mydata[i][40]),\n formatea(mydata[i][41]),formatea(mydata[i][42]),mydata[i][43])
datos=datos+insert
insercion = run_query(ruta,salon,datos)
Me genera esta linea
INSERT INTO `Tabla`( `IdPremio`,`IdColor`,`Maximo`,`Minimo`,`InicioMinimo`,`InicioMaximo`, `Porcentaje`,`Incrementos`,`Dureza`,`ComoPremios`,`Variabilidad`,`ValorInicial`, `IdMaquina`,`ValorBolsa`,`AcumuladoBolsa`,`MaximoActual`,`CuandoMaximo`,`TotalJugadas`, `CuandoPremio`,`FechaHora`,`Modulo`,`Posicion`,`EsSuperPremio`,`Control`, `TopePremio`,`TJ`,`MJ`,`DJ`,`Opciones`,`IncrementoAdicional`, `ProximoIncrementoAdicional`,`CantidadProximoIncrementoAdicional`,`CuandoMaximoTeorico`,`DurezaMaxima`,`enviado`,`ModoOculto`, `avisarAntesDe`,`Grupo`,`avisarEn`,`Pulsos`,`NombreCliente`,`DNICliente`, `PremioClub`,`modificado`) VALUES ('600','16','40','10','10','30','0.5','6','15','15','15','20.11','9','32.39','0.05','12694.29','0','7366.49','ŒŽ','2017-05-26 19:58:45', '4','4','0','0','40','20','3','100','2','0','0','0','7298.48','0',NULL,-1,'1000','0','439.78','2265927',NULL,NULL,0,'2017-05-26 19:58:44')
Pero no la inserta , si la imprimo y la copio y hago una llamada a run_query y le paso como un texto la misma cadena si que la inserta y llevo todo el dia loco con ello , porque de 500 registros me pasa lo mismo con 4 y no me da ninguna informacion de donde puede estar el error