PDA

Ver la Versión Completa : modificar registros mediante cgi-webbroker


[[JONAS]]
19-05-2004, 13:38:16
Hola amigos, tengo un problema a la hora de intentar modificar un registro mediante un update desde la información enviada por un formulario web.

Uso delphi7 y el programa es un cgi en webbroker que corre bajo un windows server 2000 y un servidor web IIS.

Me explico:
mi programa posee 3 acciones:

1-Muestra una tabla mediante un DataSetTableProducer y en la columna de la clave primaria hago un link hacia la 2º accion pasándole como parámetro el valor del CellData.

2-En la 2º acción: hago un select para localizar ese registro mediante un IBDataSet de interbase

with IBDataSet1 do
begin
close;
selectsql.Clear;
selectsql.Text := 'select * from vehiculo where vehcod = :vehicle';
params[0].Value := Request.QueryFields.Values['vehiculo']; //codigo enviado desde la página entradavehiculo.html
open;
end;
Response.Content := modificarvehiculo.Content;


Y luego esta acción genera un formulario web para poder modificar los valores de este registro. El código de la clave primaria lo devuelve oculto.

3- En esta acción lo que hago es recoger los valores del formulario para poder modificarlo. para ello uso un IBQuery de interbase


with IBQuery1 do
begin
close;
sql.Clear;
sql.Text := 'Update Vehiculo Set vehdes =' + Request.ContentFields.Values['desvehiculo'] +
'where vehcod in select vehcod from vehiculo where vehcod = :vehicle';
params[0].Value := Request.ContentFields.Values['codvehiculo']; //codigo enviado desde
Execsql;
open;
post;
IBTransaction1.CommitRetaining;
end;


Pero con esto no merealiza la modificación del registro.
Alguien me podría indicar que hago mal? o como y que componentes debería usar?

Gracias por adelantado :D

[[JONAS]]
19-05-2004, 18:40:24
Amigos ya está solucionado. Por si a alguien le pasara lo mismo que a mí. he cambiado algo el código:



var sqlt : string;
begin
try
begin
sqlt := 'Update Vehiculo Set vehdes =' + chr(39) + Request.ContentFields.Values['desvehiculo'] + chr(39);
sqlt := sqlt + ' where vehcod =' + chr(39) + Request.ContentFields.Values['codvehiculo'] + chr(39);
with IBQuery1 do
begin
sql.Clear;
sql.Add(sqlt);
Execsql;
end;
:p :p