Python - falla Update

 
Vista:
sin imagen de perfil

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

falla Update

Publicado por xve (1646 intervenciones) el 26/03/2013 14:07:50
Hola Moliadicto, nos podrías indicar como lo has solucionado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar