PDA

Ver la Versión Completa : consultaa


einarcito
15-10-2008, 01:20:24
hola chicos de nuevo aqui tengo una pregunta ahora empeze a trabajar solamente con query y datasourse, porque a la hora de hacer las altas cuando termino de cargar los datos la grilla no se actualiza pero cuando cierro y vuelvo a ingresar veo que el dato q cargue anteriormente esta en la grilla. eh probado despues de hacer grilla.refresh o query.refrehs y tampoco... algun arpote?

Caral
15-10-2008, 01:27:58
Hola
einarcito 60 post y todavía no haces un titulo que venga al caso.
Solamente te lo digo por que si se ve el titulo no se sabe de que va y muchos no responderán.

Query1.Close;
Query1.Open;
El refrech, yo no lo uso, no me gusta.
Saludos

einarcito
15-10-2008, 01:29:26
gracias por el consejo caral... soy nuevo en dephi y por lo tanto nuevo en el foroo asi que :)

einarcito
15-10-2008, 01:59:57
caral todavia tengo el errorcito te dejo el pedacito de codigo, el query.close y open irian despues del Execsql???

Código Delphi [-]
with dm.AbmProveedores do begin
sql.Clear;
sql.Add('cadena_alta)
parambyname('pfax').Value:=editfax.Text;
parambyname('pdom').Value:=editdomicilio.Text;
parambyname('ppiso').Text:=editpiso.Text;
parambyname('pman').Text:=editmanzana.Text;
parambyname('ptel').Value:=editTelefono.Text;
parambyname('prazon').Value:= editrazonsocial.Text;
parambyname('pcuit').Value:=editCuit.Text;
parambyname('ploc').Value:=comboprovincia.Text;
parambyname('pprov').Value:=combolocalidad.Text;
parambyname('pcp').Value:= editcp.Text;
parambyname('pweb').Value:=editweb.Text;
parambyname('pmail').Value:=editcorreoelectronico.Text;
execsql;
dm.AbmProveedores.close;
dm.AbmProveedores.Open;

Caral
15-10-2008, 02:08:38
Hola
Bueno ahora que estas de mejor humor.:D
Veamos algunas diferencias:
1-Si queremos que los datos se guarden SIN NECESIDAD de que se muestren se usa: Execsql
2-Si queremos que los datos se guarden Y SE REFLEJEN en algun grid u otro se usa:
a(

Query1.Close;
Query1.Open;
o
b(

Query1.active:= False;
Query1.active:= True;
En otras palabras o uno u otro, usar los dos seria redundar.
Por cierto, aparte:
Revisa esto:
sql.Add('cadena_alta)
Es asi???
Saludos

einarcito
15-10-2008, 02:15:14
si cadena si era para abrebiar. Te cuento q a la hora de guardar los datos me da el error, pero cuando vuelvo a entrar a la aplicaicion me encuentro q esta cargado :|

Caral
15-10-2008, 02:20:37
Hola
Me parece que es asi:
Primero ejecuto la consulta luego cierro el query y luego lo abro.

with dm.AbmProveedores do begin
sql.Clear;
sql.Add('cadena_alta')
parambyname('pfax').Value:=editfax.Text;
parambyname('pdom').Value:=editdomicilio.Text;
parambyname('ppiso').Text:=editpiso.Text;
parambyname('pman').Text:=editmanzana.Text;
parambyname('ptel').Value:=editTelefono.Text;
parambyname('prazon').Value:= editrazonsocial.Text;
parambyname('pcuit').Value:=editCuit.Text;
parambyname('ploc').Value:=comboprovincia.Text;
parambyname('pprov').Value:=combolocalidad.Text;
parambyname('pcp').Value:= editcp.Text;
parambyname('pweb').Value:=editweb.Text;
parambyname('pmail').Value:=editcorreoelectronico.Text;
execsql;
end;
dm.AbmProveedores.close;
dm.AbmProveedores.Open;
end;
Ahora pregunto:
AbmProveedores es el query que esta ligado al datasource que a su vez esta ligado al DBGrid ???.
Saludos

Delphius
15-10-2008, 02:22:19
Debería bastar con cerrar y volver a abrir el Query.
Cuando uno menciona que le arroja un error lo normal sería decirnos cual es el error. Por favor escribe textualmente el error te arroja, y además no te olvides mencionar en que línea.

Como recomendación, no emplees Value, sino las propiedades AsXXXX, por ejemplo AsString, AsInteger, etc.

Saludos,

Neeruu
15-10-2008, 02:23:14
Hola como andan_???


Como que query y con que base de datos trabajas????

Es para poder darte una mano mas especifica!!!


Yo trabajo con delphi 7, interbase 7.1 y IB Object

y cuando quiero agregar datos a una tabla simpremente hago asi:


MyQry.open;
MyQry.Append;
MyQry['CAMPO1'] := 'FA';
MyQry['CAMPO2'] := 'A';
MyQry['CAMPO3'] := 1;
MyQry['CAMPO4'] := 10;
MyQry.Post;


Si lo tengo enlasado a una grilla sola se refresca, y en caso que cerrara el
Query deja de verse en la grilla

Espero que te sirva!!!

Saluda Atte Neeruu!!!:)

einarcito
15-10-2008, 02:29:23
probe lo q me dijo caral y lo mismo... el error es 'Error creating cursor handle'. y ahi cieero el delhi. cuando lo habro nuevamente el dato esta cargado... q tiene value no es estable? GRACIAS delpihus

Caral
15-10-2008, 02:33:55
Hola
Que sentencia sql tiene AbmProveedores.
Veo que haces un add pero es difícil imaginarse a que se refiere.
El error me parece que tiene que ver con algún dato incorrecto, pero hoy no traje la volita de cristal.:D:D
Es raro que se guarden los datos y de paso te envie un error, para mi esta en otro lado por que si mandara un error no guardaria nada segun esta parte.
Saludos

einarcito
15-10-2008, 02:44:24
a decir verdad esos datos estan bien 1 porq lo acabo de revisar y otra porq si yo le hago a
//dm.abdproveedores.close
//dm.abmproveedores.open

se cargan perfecto pero no se actualiza la grilla, pero si hago esto
dm.abdproveedores.close
dm.abmproveedores.open

se cargan pero me tira el error. Entiendes?

Caral
15-10-2008, 02:50:39
Hola
Veamos esto por partes a ver si nos entendemos.
Cuando Se carga el form aparecen los datos que acabas de incluir, osea al cerrar y abrir el form.
Pregunto:
1-Cual query esta ligado al Dbgrid.
2-Como abres este query.
3-Donde lo abres.
Saludos

Delphius
15-10-2008, 02:55:28
einarcito, al igual que a Caral el error me huele a que proviene de otro lado.
Me gustaría saber que haces antes y después de ese código. Sin conocer mayores detalles no te sabría decir.

No es que no sea estable sino que en ocasiones eso puede forzar al compilador interpretar al dato de forma incorrecta. El empleo de Value fuerza al compilador hacer la transformación desde el tipo Variant al tipo esperado, y muy a pesar de que el mecanismo de conversión de variant a otros tipos (y a la inversa, de otros a variant) es bastante inteligente esto no garantiza de que dato se transforme adecuadamente. Si se es incapaz de reconocer el tipo, se producirá una excepción y el dato no se mostrará o almacenerá apropiadamente.

Por ello es mejor emplear AsXXX.

Saludos,

einarcito
15-10-2008, 03:02:55
genial.. esoty cansado voy a rebisarlo bien mañana, no tengo nada mas q esa porcion q te mande porq es en un boton q realiza el alta muchas grax a todos voy a revisar bien y si no pasa nada volvere al hilo . aDios