Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda error query:field 'id' not found (https://www.clubdelphi.com/foros/showthread.php?t=80042)

edgar_prospero 30-08-2012 18:22:25

ayuda error query:field 'id' not found
 
que hay amigos aqui traigo un problemilla con ayuda de este foro logre avanzar en mi programa pero tambein me salio otro problemita al tratar de ejecutr el sifuiente codigo me marca el error ayuda error query:field 'id' not found y esto es en cuanto ejecuto el programa y no se que pueda ser:

Código Delphi [-]
DataSet.FieldByName('id').AsInteger := AutoId;
  Dec(AutoId);
end;
 

 
procedure TForm4.guardarClick(Sender: TObject);
var AutoId:integer;
begin
clientdataset1.ApplyUpdates(0);
 clientdataset1.Refresh;
  AutoId := -1;
 
end;
 
 
 
procedure TForm4.queryAfterOpen(DataSet: TDataSet);
begin
 
DataSet.FieldByName('id').ProviderFlags := DataSet.FieldByName('id').ProviderFlags - [pfInUpdate];
 
end;

el error me lo marca en esta ultima linea

ecfisa 30-08-2012 18:30:38

Hola edgar.

El error es claro, te está diciendo: no existe en la tabla o consulta un campo llamado 'id'. ¿ Estás seguro que es el nombre correcto o que lo incluiste en la consulta ?

Saludos.

edgar_prospero 30-08-2012 18:40:10

si si existe, pues ya e guardado registros y creo que es la ultima linea porque si le pongo folio en lugra de id que tambien existe me sale el error pero diciendo que no existe folio

ecfisa 30-08-2012 18:42:57

Hola edgar.

¿ Podrías poner la consulta SQL que estas usando ?

Saludos.

edgar_prospero 30-08-2012 18:50:37

no se a cual consulta te refieres o ando un poco perdido en eso, no se si me puedas orientar para contestar tu pregunta, ya que tengo varios componentes para mi sistema como son TMyquery, cliendataset1, datasetprovider1, datasource1

ecfisa 30-08-2012 19:03:17

Hola edgar.

A ver si me puedo explicar, si por ejemplo en la propiedad SQL.Text de tu query tuvieras una consulta de este tipo:
Código SQL [-]
SELECT CODIGO, PRECIO, CANTIDAD FROM ARTICULOS

Y luego intentaras esto:
Código Delphi [-]
    ShowMessage(query.FieldByName('DETALLE').AsString);
Recibirías el mensaje: "query:field 'DETALLE' not found". Por que aún existiendo el campo DETALLE en la tabla ARTICULOS, este no fué seleccionado en la consulta.

Saludos.

edgar_prospero 30-08-2012 19:07:09

a ok en mi query aparace esto :

select * from entradas where folio = :folio

ecfisa 30-08-2012 19:15:17

Hola edgar.

Disculpa, recién veo como tenes tu conección, proba ejecutando la acción sobre el TClientDataSet.
Código Delphi [-]
...
  with ClientDataSet1 do
   FieldByname('FOLIO').ProviderFlags := FieldByName('FOLIO').ProviderFlags - [pfInUpdate];
...

Saludos.

edgar_prospero 30-08-2012 19:21:35

lo hice como me dijiste pero ahora me marca este error: 'clientdataset1: circular provider references not allowed'

ecfisa 30-08-2012 19:25:57

Hola edgar.

Es que no sé como tienes relacionados query-datasetprovider-clientdataset-datasource, estoy disparando a oscuras...

Saludos.:)

edgar_prospero 30-08-2012 19:41:36

tengo un dbgrid que esta ligado con un datasource este a su vez esta con un clientdataset y este en su propiedad de provider name esta con un datasetprovider y este en su propiedad dataset esta con un clientdataset. como observacion en la propiedad params del clientdatsetesta folio. lo que hago es que voy agregando registros temporalmente al dbgrid para despues guardarlos en la base de datos, de igual manera tambien muestro registros ya guardados

ecfisa 30-08-2012 22:28:19

Hola edgar.
Cita:

tengo un dbgrid que esta ligado con un datasource este a su vez esta con un clientdataset y este en su propiedad de provider name esta con un datasetprovider y este en su propiedad dataset esta con un clientdataset
No termino de entender si hay mas de un ClientDataSet en juego, pero si no es así, conecta la propiedad DataSet del DataSetProvider con el Query y luego aplica el código del mensaje #8.

Saludos.

edgar_prospero 31-08-2012 00:05:02

no nomas hay un clientdataset ya conecte la propiedad dataset en query y aplique el codigo que me indicaste y donde me indicaste pero al tratar de agregar 2 registros seguidos me marca 'key violation'

ecfisa 31-08-2012 00:17:50

Cita:

Empezado por edgar_prospero (Mensaje 441312)
no nomas hay un clientdataset ya conecte la propiedad dataset en query y aplique el codigo que me indicaste y donde me indicaste pero al tratar de agregar 2 registros seguidos me marca 'key violation'

Hola.

Ese error cae en la misma categoría que Casimiro menciona aqui.

Saludos.

edgar_prospero 31-08-2012 00:22:37

exacto, nomas tengo una clave primaria y es la de id que es autoincremental y pues creo que ya estoy como empece con el mismo problema, si quito la llave primaria si puedo guardar de varios registros a la vez, pero no puedo eliminar registros, pero si pongo clave primaria si puedo elminar registros pero ya no puedo guardar, se supone que todo este codigo qeu traigo es para poder agregar carios registros al dbgrid pero como al pasarlo al dbgrid el valor de id es null asi que al meter el segundo regisrto tambien es null por eso me ,marca el error y es lo que no e podido solucionar

edgar_prospero 31-08-2012 00:43:11

ya me desespero un poco esto te adjunto parte del proyecto para ver si viendolo me puedes decir donde tengo el horror jeje gracias espero me puedas echar la mano


La franja horaria es GMT +2. Ahora son las 01:04:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi