![]() |
Actualizar Registros
Hola
Otra vez yo disculpen pero kisiera saber como se le hace para actualizar un registro en Interbase ya que tengo un aplicacion que primero me pide que le de la tabla q kiero ver depues si kiero hacer una busqueda de algun registro, si lo encuentra se le dda la opcion de poder modificarlo o borrarlo. Lo del borrado me sale perfecto pero la modificacion no y eske se supone q tengo un IBDataSet que es dond esta la opcion de midifysql y ahi es donde lo pongo pero lo q hago diferente es q despues de q selecciono la tabla ahi intento introducir la sentecnia de modificacion por q obviamente no puedo ponerla desde le principio puesto q no c q tabla poner en al instruccion y por ende tampoco el indice para hacer la actualizacion asi q depues de q me da la tabla inento poner la sentencia q es la siguiente
donde Tabla es el nombre de la tabla q guardo en esta variable con un metodo campos es un string q con otro metodo genero para poner todos los campos que tienen de la siguiente manera: Campo=:Campo, y asi todos los campos y esa es la variable campos Index es el indice d la tabla q obtengo de la tabla y clavem es, si ven el mismo indice pero modificado para ponerlo asi (OLD_Index) segun yo la sentencia esta bien y depsues selecciono todo de la tabla (osea select * from Tabla) y la activo pero me manda un error que dice SQL Parse Error: Parameter Name Expected No se si me falta una instruccion por dar o q pero c que el problema esta en este codigo por q si lo kito o lo comento si me selecciona la base de datos y me y la muestra y si kiero borrar o buscar un registro lo hace pero como kiero modificarlo desde el dbgrid eso es lo q no me deja por su ayuda y esperando me la puedan otorgar Gracias |
Loq pasa es que al hacer el query de actualización le esta diciendo qe va a mandar dos parametros (o eso entiendo)... es decir al final le esta quedando algo así como esto:
si ese es el query entonces tiene dos opciones... la primera construir el query como lo esta haciendo y no mandar parametros... para esto deberá quitar los dos puntos (:) la segunda es usar los parametros y para esto (y conservando el esquema expusto arriba) deberá agregarle las siguientes lienas antes del select:
Con esta ultima opcion podrá seguir usando IBDataSetCons con el mismo query y cuando quiera cambiar los valores de campo y de oldIndex solo debera mandarselos como como explique anteriormente. |
Loq pasa es que al hacer el query de actualización le esta diciendo qe va a mandar dos parametros (o eso entiendo)... es decir al final le esta quedando algo así como esto:
si ese es el query entonces tiene dos opciones... la primera construir el query como lo esta haciendo y no mandar parametros... para esto deberá quitar los dos puntos ( : ) la segunda es usar los parametros y para esto (y conservando el esquema expusto arriba) deberá agregarle las siguientes lienas antes del select:
Con esta ultima opcion podrá seguir usando IBDataSetCons con el mismo query y cuando quiera cambiar los valores de campo y de oldIndex solo debera mandarselos como como explique anteriormente. |
Aclaracion
Gracias por tu sugerencia
aunque voy a probar como dices deja ver si era asi por q lo q kiero decir es q est query lo hago para poder modificar los datos desd un dbgrid y los dos puntos segun me habian enseñado es paraq indicarle el campo del dbgrid pero si c lo kito creo no me los reconoce, bueno eso digo yo y el del index es la llave primaria d la tabla y el OLD_ es un prefijo para decirle q cambie ese registro de esa "antigua llave" y esq ya ves q para modificarlo en el dbgrid para empezar a introducir datos debe haber el query de modifysql antes de activar el dataset (o al menos eso sabia yo) entonces no c si intentando lo q me djist lo logre pero lo voy a intentar..pero si no me explique bien les ruego me digan por q luego hasta yo me hago bolas :o Pero por su atencion gracias si tienes otro comentario o sugerencia t ruego me lo hagas llegar por favor |
La franja horaria es GMT +2. Ahora son las 23:38:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi