PDA

Ver la Versión Completa : No parameters Expected(ApplyUpdate)


david duarte
03-08-2005, 16:41:06
Hola!!!

estoy haciendo un programa con delphi 5 y midas (corba) tengo un clientdataset, hago las operaciones que tiene que hacer el programa, guardo algunos datos en la base de datos (paradox) o el datamodulo y al momento de aplicar el applyupdates no me deja poner el numero de errores que se pueden aplicar, al poner el parentesis que abre (ApplyUpadate(****) ) me dice que no parameters expected no se porque me marca ese error o ese mensaje.

En ese mismo programa tengo otras tablas, y en esas tablas si me deja aplicar el applyupdate sin ningun problema

Alguien sabe a que se debe eso??

normalmente aplico mis actualizaciones al final del procedimiento.

p.e.

modulotablas.www.ApplyUpdates(-1) <---- en este caso si me deja aplicarlo
modulotablas.www.Refresh;
pero cuando pongo el otro aply es cuando viene el error

modulotablas.zzz.ApplyUpdates(aqui me marca que no parameters expected)
pero no se a que se deba.


Espero que hayan entendido mi pregunta y de antemano gracias por su atencion

dec
03-08-2005, 17:30:41
Hola,

Sin meterme en donde no sabría salir, creo que, sencillamente, estás utilizando dos métodos distintos, o dos funciones o dos procedimientos distintos, lo que quiera que sean.

Uno de ellos cuenta con determinados parámetros y el otro no. Por eso al intentar dárselos no los acepta, no los espera. Prueba a poner el cursor encima del método que no admite parámetros, pulsa la tecla "CONTROL" y haz clic en el mismo.

Seguramente dicho método te lleve a una implementación del mismo que es distinta de la implementación que tiene el otro método, que, aunque de igual nombre, no hacen lo mismo, o no lo hacen del mismo modo.

Quiere decirse que uno de los métodos puede ser de un objeto y otro de otro. Probablemente puedas asegurarte de que llamas al método oportuno anteponiendo el nombre del objeto. En todo caso asegurarte de que llamas al método que quieres llamar, que, puesto que se coincide con el nombre de otro, no es lo mismo uno que otro.

¿Es todo lo que he dicho una perogrullada y la cosa tiene un intríngulis (http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=intr%C3%ADngulis) que se me escapa? Todo pudiera ser...

david duarte
04-08-2005, 05:03:05
creo que no me explique bien, dentro de los procedimientos hago las modificaciones a mi bd.

datamodulo1.clientdataset1.fieldbyname('campo1'). value = el valor de un stringgrid
datamodulo1.clientdataset1.fieldbyname('campo1'). value = el valor de un stringgrid

datamodulo2.clientdataset1.fieldbyname('campo1'). value = el valor de un stringgrid
datamodulo2.clientdataset1.fieldbyname('campo1'). value = el valor de un stringgrid

.....
datamodulo1.nombretabla.fieldbyname('n-1'). value = el valor de un stringgrid
y al finalizar el procedimiento aplico los applyupdates para que me guarde los cambios que se hicieron anteriormente
datamodulo1.dataset1.applyupdates(-1);
datamodulo1.dataset2.applyupdates(-1);
pues en este segundo es donde supuestamente no espera parametros, que se supone debe de llevar para que guarde los cambios.

Gracias

dec
04-08-2005, 06:14:23
Hola,

Disculpa mi ignorancia sobre el tema. Insistiré a riesgo de equivocarme, si cabe, más aún: ¿"dataset1" y "dataset2" son del mismo tipo? Porque si lo son, no comprendo, entonces, cuál puede ser el problema, y, cuando no sean del mismo tipo, se puede comprender que uno implemente el método de marras de una manera y el otro de otra y de ahí el "error".

david duarte
04-08-2005, 16:43:56
si, son iguales, porque es el modulo de datos y tiene es lo mismo (tipo), dentro del modulo de datos estan todas las tablas que utilizo, pero para los fines, si son iguales.
y no comprendo el error, pero bueno lo seguiere checado por un rato mas a ver si le encuentro el porque.

Gracias
Como te sientes hoy??

david duarte
04-08-2005, 18:57:15
o como puedo saber si no se han aplicado mis actualizaciones en la bd, existe una funcion para ver si ya se guardaron los datos??

Gracias
Como te sientes hoy??

david duarte
04-08-2005, 19:00:09
ya te entendi. los dataset en este caso son tablas diferentes, pero el applyupdates es para guardar los datos modificados, sin importar si los campos o datos de una tabla son los mismos o diferentes, no?

Gracias
Como te sientes hoy??

dec
05-08-2005, 02:28:34
Hola,


ya te entendi. los dataset en este caso son tablas diferentes, pero el applyupdates es para guardar los datos modificados, sin importar si los campos o datos de una tabla son los mismos o diferentes, no?

No lo decía yo por tanto. Imaginaba que podrías estar usando un "DataSet" de Delphi, y otro de otra compañía, quiere decirse que, aunque hicieran lo mismo pues pudieran hacerlo de distinto modo y uno tener un método "ApplyUpdates" que admitiera o requiriera parámetros y el otro tener un método de igual nombre pero que no precisara parámetro alguno.

Porque, fuera de todo, el error que te "marca", esto es, "No paremeters expected", está claro: el método en cuestión no precisa parámetros, por tanto no pueden dársele sin que el compilador se queje. Espero que arregles el problema. A ver si al cabo lo consigues y explicas porqué el error y eso.

david duarte
05-08-2005, 20:46:48
bueno, el problema no se porque se dio, el chiste es que lo puse en otra parte del codigo y ya no me marco el error.

mi proyecto hace lo siguiente:

son seguimiento de solicitudes (dar de alta una solcitud, y capturar los resultados de los analisis)

Primero: en cualquier computadora en donde corre el "programa cliente" doy de alta una solicitud(usuario) con el folio 1, entonces el analista que es el que va a capturar los resultados de los analisis, captura los resultados en la computadora que tiene asignada(en el laboratorio), abre la solicitud con ese folio y le muestra el numero de analisis que tiene que capturar y los captura.

p.e. el alta de la solicitud de analisis tiene 3 analisis iguales, para esto asigno un stringgrid donde muestra por medio de renglones el numero de analisis a capturar o realizar( cada renglon representa un analisis)

utilizo un stringgrid.cellselect para saber cual analisis va a capturar( esto es porque en la bd tengo tambien un registro por cada analisis), asigno el numero de renglon a una variable, y se supone que si le doy clic en el primer renglon de stringgrid, le capturo algunos resultados estos me los debe de guardar en el primer registro de la bd; si le dos clic en el segundo, me los debe de guardar en el 2o reg, y asi consecutivamente. y al mismo tiempo me los va mostrando en el stringgrid y me los muestra bien, hasta ahi todo va bien(supuestamente), pero cuando cierro la aplicacion y la vuelvo a abrir, me muestra los resultados de los analisis pero todos con los mismos resultados, a pesar de que yo nada mas capture uno, p.e. si son 4 analisis y yo capture el primero, en los demas registros me muestra los mismos datos que el primero.

siento que algo anda mal al posicionarme en el registro.

primero tengo un ciclo para buscar el analisis, cuando encuentro el analisis o registro, lo edito y despues hago las asignaciones pertinentes.

Pongo el ciclo for en el cual hago eso

for encontrar := 0 to modulotablas.resul_textil.RecordCount do
begin
if modulotablas.resul_textil.FieldByName('Labfolio').value = edit1.Text then
begin
inc(conta); //incremento el contador, contador siempre empieza en 0
if conta < strtoint (label3.Caption) then //label 3 es que tiene el renglon que le di clic
modulotablas.resul_textil.Next //si es menor paso al siguiente registro
else
Begin
if ((modulotablas.resul_textil.FieldByName('LabFolio').value = edit1.text) and (conta = strtoint(label3.Caption)))then
de lo contrario, si es el registro que quiero y el contador es igual a el renglon
//if conta = strtoint(label3.Caption) then
Begin
modulotablas.resul_textil.Edit; <----- se supone que aqui edito el registro actual, si no mal me equivoco
break;
end;

//break;
end;
end //if modulotablas.resul_textil.FieldByName('Labfolio').value = edit1.Text then
else
modulotablas.resul_textil.Next;
end; //for encontrar := 0 to modulotablas.resul_textil.RecordCount do


en estre otro ciclo que sigue a continuacion es donde hago la asignacion
en este caso en el stringgrrid2 guardo los valores que se modificaron

for cont :=0 to stringgrid2.RowCount-1 do
begin
if ((bandpos = 0) and (regnuevo = 'S')) then
Begin
if stringgrid2.Cells[2,cont] <> '' then <-----si contiene datos le asigno los resultados que se capturaron ----->
Begin
modulotablas.resul_textil.FieldByName(stringgrid2.cells[1,cont]).value := stringgrid2.Cells[2,cont];
modulotablas.resul_textil.ApplyUpdates(-1); <----- aplico applyudpate
end;
<----- si esta vacio, quiere decir que no capturaron ningun dato --->
end
else
Begin
if ((stringgrid2.Cells[2,cont] <> '') and (bandpos =0) and (regnuevo = 'N')) then
Begin
if (stringgrid2.Cells[2,cont] <> '') then
Begin
modulotablas.resul_textil.FieldByName(stringgrid2.Cells[1,conta]).value := stringgrid2.Cells[2,cont];
modulotablas.resul_textil.ApplyUpdates(-1);
modulotablas.resul_textil.Refresh;
end;
end; //if ((stringgrid2.Cells[2,conta] <> '') and (bandpos =0) and (regnuevo = 'N')) then
end;
end; //for conta :=0 to stringgrid2.RowCount-2 do


espero que hayan entendido y espero su respuesta, porque la verdad ya me quebrè el cerebro, pero no el encuentro el error

Gracias
Como te sientes hoy??

david duarte
01-09-2005, 23:46:24
ya encontre el error.

El error es por lo siguiente

primero edito mi Clientdataset, hago operaciones, aplico updates sin ningun problema

despues en un ciclo tengo un dataset, lo edito, y dentro de ese ciclo lo mando al primer registro(con esto se elimina la edicion del dataste), por eso cuando le ponia el ApplyUpdate(**aqui me decia "no parameters expected**) me marcaba ese error, porque no estaba en edicion.

dec
02-09-2005, 00:05:30
Hola,


despues en un ciclo tengo un dataset, lo edito, y dentro de ese ciclo lo mando al primer registro(con esto se elimina la edicion del dataste), por eso cuando le ponia el ApplyUpdate(**aqui me decia "no parameters expected**) me marcaba ese error, porque no estaba en edicion.

Pues no me cuadra david. Es muy posible que me equivoque, pero, ¿entonces no debería darte un error tal como "El DataSet X no está en edición" o algo parecido... Porque el "no parameters expected" está claro: no se necesitan parámetros... no dice nada más que lo que dice y bien dicho está.

david duarte
31-10-2005, 23:16:27
no, fijate que no me dice nada.
Eso me lo dice cuando estoy ejecutando el programa, al momento de querer dar dos altas, la primera me la hace bien, pero cuando quiero dar de alta la segunda, me dice que primero necesito hacer las actualizaciones.

En tiempo de diseño o de codigo, solamente me aparece "No parameters expected", pero al momento, tu no sabes porque aparece eso. Despues de tiempo, te das cuenta de que no tienes abierto tu dataset.

Bueno al menos eso fue lo que a mi me paso, probablemente este mal y sea por otra cosa.

Cómo te sientes hoy?