Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   conexion insertar,borrar, actualizar tablas .bdf (https://www.clubdelphi.com/foros/showthread.php?t=56905)

thelibmx 30-05-2008 17:29:12

conexion insertar,borrar, actualizar tablas .bdf
 
Hola amigos de nuevo aqui con un pequeño problemilla, no he manejado delphi con tablas bdf, pensando un poco, lo que logre hacer fue crear una conexion con el odbc y el driver de visual foxpro ya que las tabla se generaron ahi, despues en delphi agregue un tdatabase,ttable y un tdatasource,tdbnavigator,tdbgrid y varios Tdbedit, con eso ya pude ver la informacion que contiene la tabla, mi problema entre otros son varias cosas,

1.-me aparece la ventana de databaselogin al iniciar el programa, cuando la propiedad del tdatabase loginprompt esta en false, no se que otra cosa tenga que configurar.
2.-Con la barra dbnavigator puedo pasar de un registro a otro con las flechas e incluso me permite agregar otro registro, pero si quiero borrar alguno o quiero escribir en un registro que ya existe es decir actualizar un dato de algun campo me manda el siguiente error

Código Delphi [-]
Project Project.exe raised exception class EDBEnginerError with message 'Key violation. [Microsoft][ODBC Visual foxpro driver]SQL:statement too long.'

No estoy insertando informacion duplicada, eso me aparece cuando intento modificar en el dbgrid informacion o cuando quiero borrar algun registro.
Como les dije no he trabajado con ese tipo de tablas, tal ves no es la forma como debi hacer la conexion o me falto algun paso, les agradeceria si pudieran decirme cual seria la mejor forma de poder accesar a esos datos y poder insertar,modificar, y borrar la informacion.
utilizo delphi2006 y las tablas estan hechas en visualfoxpro 8

Por su ayuda muchas gracias

BlueSteel 30-05-2008 20:19:59

Hola

Mira, con el Delphi 7, realizaba lo sgte;

- Crear el Alias (ruta donde estan ubicadas las tablas .dbf) en el DBE
- Conectar las tablas mediante los TTable o TQuery de la pestaña DBE
- Siempre utilice TQuery (para actualizar habia que cambiar la propiedad RequiesList a True... no me acuerdno muy bien como se escribia


Como todo lo usaba con TTable y TQuery.. los proceso para agregar, eliminar, actualizar eran los sgtes:

Eliminar
Código Delphi [-]
     With Tablas Do
          With TSoc Do
          Begin
               If MessageDlg('Seguro de Borrar al Socio '+#13+#13+FieldByName('Nombre').AsString,mtConfirmation, [mbYes,mbNo], 0)=MrYes Then
                  Delete;
          End;

Agregar
Código Delphi [-]
     With Tablas Do
          With QSimples Do
          Begin
               If RecordCount = 1 Then
                  ShowMessage('Registro ya Existe !   No fue agregado!!!')
               else
                  Begin
                      Insert;
                      FieldByName('Ficha').AsString     := Fic.Text;
                      FieldByName('Nombre').AsString    := Nom.Text;
                      FieldByName('Simple').AsString    := Simple.Text;
                      FieldByName('Olimpico').AsString  := Olimpico.Text;
                      FieldByName('Sorteo').AsString    := Sorte;
                      FieldByName('Temporada').AsString := Tempo;
                      Post;
                  End
          End;

Bueno, en el ejemplo anterior, antes de insertar verificaba con el sgte codigo
Código Delphi [-]
     Fic.Text := Verificar.SFicha.Text;
     Nom.Text := Verificar.Nombre.Text;
     Tempo := Verificar.Temporada.Text;
     Sorte := Verificar.Sorteo.Text;
     Simple.SetFocus;
     With Tablas Do
          With QSimples Do
          Begin
               Sql.Clear;
               Sql.Add('Select * From Simples Where (Ficha=:Var1) And (Sorteo=:Var2) And (Temporada=:Var3)');
               Params[0].AsString  := Fic.Text;
               Params[1].AsString  := Sorte;
               Params[2].AsString  := Tempo;
               ExecSql;
               Active:=True;
          End


Bueno, recordando no tengo ningun proceso de actualización...

Las tablas eran creadas con el DBE, tipo DBase III o Paradox

Salu2:p:D

thelibmx 02-06-2008 18:41:07

Muchas gracias por tu respuesta BlueSteel.

Utilize un componente que se llama tdbf y se soluciono mi problema dejo el link por si alguien mas le sirve.

http://sourceforge.net/projects/tdbf/

Saludos :D

MasDelphi 30-01-2014 12:33:53

Gracias thelibmx!!.
Ayer tuve que trabajar con un código muy antiguo y se me presentó el mismo problema que indicas. También conseguí solucionarlo con componente de tdbf en Delphi 5. Varias horas en ello y un dolor de cabeza, hasta que seguí tu consejo y logré la solución.

Nuevamente, gracias a todos!.

thelibmx 10-02-2014 20:03:14

No es nada, Saludos


La franja horaria es GMT +2. Ahora son las 17:39:54.

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