
falla Update
Publicado por moliadicto (6 intervenciones) el 23/03/2013 20:12:22
Buenos tardes: Esta es mi primera pregunta, de principiante:
Estoy haciendo un ejemplo de BD con Python 2.73 y MySQL,, tengo creado en PHP MyAdmin del wamserver una BD llamada gesmol con una única tabla llamada clientes que tiene cuatro campos
codigo, nombre, poblacion, cif.
El problema es que me funciona todo excepto UPDATE (modificar), y me estoy volviendo loco, con pruebas y no consigo saber que fallar. Alguna ayuda por favor.
Gracias
lo que tengo hecho es lo siguiente:
Estoy haciendo un ejemplo de BD con Python 2.73 y MySQL,, tengo creado en PHP MyAdmin del wamserver una BD llamada gesmol con una única tabla llamada clientes que tiene cuatro campos
codigo, nombre, poblacion, cif.
El problema es que me funciona todo excepto UPDATE (modificar), y me estoy volviendo loco, con pruebas y no consigo saber que fallar. Alguna ayuda por favor.
Gracias
lo que tengo hecho es lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
import MySQLdb
#Conectar a la base de datos
try:
db = MySQLdb.connect("localhost","root","","gesmol")
cursor = db.cursor()
except:
print "No se ha podido esteblecer conexion con el servidor."
raw_input()
exit
#Funcion ingresar
def ingresar():
print "********** ALTA DE CLIENTES **********: \n"
codigo = int(raw_input("Ingrese el Codigo del Cliente: "))
nombre = raw_input("Ingrese el Nonbre del Cliente: ")
poblacion = raw_input("Ingrese la Población del Cliente: ")
cif = int(raw_input("Ingrese el CIF del Cliente: "))
sql = "INSERT INTO clientes(codigo, nombre, poblacion, cif)\
VALUES('%s','%s','%s','%s')" % \
(codigo, nombre, poblacion, cif)
try:
cursor.execute(sql) #Ejecuta los cambios en la base de datos
db.commit() #Confirma los cambios en la base de datos
except:
print "\nSe ha producido un error durante la ejecucion"
db.rollback() #deshace lo hecho
RegresarMenu()
#Funcion listar
def listar():
cursor = db.cursor()
sql = "SELECT * FROM clientes"
try:
cursor.execute(sql)
resultados = cursor.fetchall() #muestra la fila
for row in resultados:
print "Codigo; " , row[0]
print "Nombre: " , row[1]
print "Poblacion:" , row[2]
print "CIF: " , row[3]
resultados = cursor.fetchall()
except:
print "No hay registros"
RegresarMenu()
#Consultar por nombre
def consultarNombre():
nombre = raw_input("Ingrese el nombre del cliente ")
sql = "SELECT * FROM clientes WHERE Nombre = '%s'" %(nombre)
try:
cursor.execute(sql)
resultados = cursor.fetchall()
for row in resultados:
print "Codigo: " , row[0]
print " Nombre: " , row[1]
print "Poblacion:" , row[2]
print "CIF: " , row[3]
resultados = cursor.fetchall()
except:
print "No exite un Cliente con este nombre"
RegresarMenu()
#modificar
def modificar():
codigo = int(raw_input("Ingrese el codigo del cliente "))
sql = "SELECT * FROM clientes WHERE codigo = '%s'" %(codigo)
try:
cursor.execute(sql)
resultados = cursor.fetchall()
for row in resultados:
print "Codigo: " , row[0]
print "Nombre: " , row[1]
print "Poblacion: " , row[2]
print "CIF: " , row[3]
except:
print "Error al modificar"
print "Que quieres modificar? "
print "1 - Nombre "
print "2 - Poblacion"
print "3 - CIF"
op=raw_input("")
if op =="1":
nombre=int(raw_input("Escribe el nuevo Nombre: "))
sql = "UPDATE clientes SET nombre = '%s' WHERE codigo = '%s' " %(nombre, codigo)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
if op =="2":
poblacion=int(raw_input("Escribe la nueva Poblacion: "))
sql = "UPDATE clientes SET poblacion = '%s' WHERE codigo = '%s' " %(poblacion, codigo)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
if op =="3":
cif=int(raw_input("Escribe el nuevo CIF: "))
sql = "UPDATE clientes SET cif = '%s' WHERE codigo = '%s' " %(cif, codigo)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
def RegresarMenu():
print "------------------------------------------------------------"
raw_input("\nPresion cualquier tecla para regresar al menu anterior...")
Menu()
#MENU6
def Menu():
print """
----------------------------------------------------------------
Opciones disponibles
----------------------------------------------------------------
1. - Alta de Clientes
2. - Listado de Clientes
3. - Consultar de un cliente por nombre.
4 - Modificar un cliente.
5. - Graficar
6. - Finalizar el programa.
-----------------------------------------------------------------
"""
try:
opcion = int(raw_input("\n Ingrese una opción "))
except:
print "\nError: El valor ingresado no es de tipo numerico, por favor vuelva a intentarlo"
RegresarMenu()
try:
if opcion == 1:
ingresar()
elif opcion == 2:
listar()
elif opcion == 3:
consultarNombre()
elif opcion == 4:
modificar()
elif opcion == 5:
print "El programa se esta cerrando..."
try:
db.close()
exit()
except:
exit()
else:
print "Error"
RegresarMenu()
except:
print "\nError Final"
RegresarMenu()
Menu()
Valora esta pregunta


0