• Miércoles 1 de Mayo de 2024, 00:17

Autor Tema:  Error En Bd  (Leído 2165 veces)

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Error En Bd
« en: Jueves 2 de Diciembre de 2004, 05:02 »
0
Directo al grano.........
Intento guardar unos datos en una tabla de una BD access que tengo y cuando intento guardar me dale el error Record Not Found
es obvio que la tabla esta vacia, pero yo quiero empezar a llenarla desde la aplicacion que estoy creando

Table1->Active = true;
Table1->Append();
Table1->FieldByName("-------")->AsString = Edit1->Text;

Eso es mas o menos lo que hago.

En la misma forma estoy manejando 2 tablas( 2 Table y 2 DataSource uno pa' cada tabla)

Es Urgente
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

shackletta

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error En Bd
« Respuesta #1 en: Viernes 3 de Diciembre de 2004, 14:26 »
0
Tengo que hacer algo similar, pero yo quería hacerlo metiendo la información en un grid, me pondré a investigar e intentaré decirte algo.

Un saludo.
[size=109]Sólo sé que esto no va a terminar conmigo, sin embargo yo sí que lo terminaré a él.[/size]

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Error En Bd
« Respuesta #2 en: Viernes 3 de Diciembre de 2004, 19:28 »
0
Si lo que quieres es meter informacion desde el Grid a la Base de Datos te recomiendo esto
Table1->FieldByName("-------")->AsString  = StringGrid1->Cells[1][1];

si es lo CONTRARIO PUEDES PROBAR ASI:
StringGrid1->Cells[1][2] = Table1->FieldByName("-------")->AsString;

Los guiones son el nombre del campo en la base de datos y las celdas del Grid la puedes manejar como matrices, la primera celda es la
  • [0]


Espero te sirva
 :comp:
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

Del Piero

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Error En Bd
« Respuesta #3 en: Viernes 3 de Diciembre de 2004, 19:57 »
0
:angry: Cual es la funcion que usas para grabar

         <_<            Por ejemplo para insertar un nuevo registro, implemento  un boton "Nuevo", y en su evento "OnClick" escribo lo siguiente:

                                              Table1->Insert();

                           y cuando quiero guardar los cambios uso un boton "Grabar", con el codigo siguiente:

                                              Table1->Refresh();

         <_<             Intenta lo anterior, y sigue preguntando si tienes más dudas.

overnat

  • Miembro activo
  • **
  • Mensajes: 52
    • Ver Perfil
Re: Error En Bd
« Respuesta #4 en: Viernes 4 de Febrero de 2005, 09:31 »
0
El boton Guardar seria :

Tabel1->UpdateRecord();
Table1->First();  Para que se ponga en el Primer registro .


Ahora Pregunto Yo .


Como Puedo buscar dentro de la Bd ?

quiero poner un boton buscar en mi programa para que encuentre el nombre del cliente que yo le paso desde un Tedit y cuando lo encuentre me muestre todos los datos ( Id, Nombre, Apellidos, Direccion ),en los DBEdit que tengo en el mismo Form.y si no pues que diga que no hay cliente con ese nombre.

La bd se llama clientes y tiene varios campos, que son :

Clientes->

Id ,Nombre , Apellidos, Direccion.



ayuda please .

Salu2

shackletta

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error En Bd
« Respuesta #5 en: Viernes 4 de Febrero de 2005, 19:37 »
0
Pues supongo que en el evento Onclick del botón buscar puedes poner una query (si la conexión a la BD es con ADO será una ADOQuery) donde busques lo que quieres y te lo devuelva.

Una vez hayas recogido el texto del TEdit (con Edit->Text), lo guardas en un AnsiString (que yo llamaré name), y añades a la Query una sentencia SQL

     SELECT id, apellidos, direccion FROM Clientes WHERE nombre = name

eso suponiendo que la búsqueda la realices por nombre.

Después tienes que incluir una línea de código para ejecutar la consulta, Open(), y asociar esa consulta a un DataSet para poder visualizar el resultado después.

Esto es más o menos la teoría, para ver si te aclaro un poco más las cosas te voy a poner un ejemplo pero hecho con la conexión con la BD es con ADO y por ello utilizo ADOQuery:

    AnsiString name = Edit1->Text;
    // es bueno cerra la query primero por si acaso la hubiésemos utilizado en
    // otra parte del programa y la hubiésemos dejado "abierta" lo que podría
    // darnos problemas
    ADOQuery1->Close();
    // la limpiamos
    ADOQuery1->SQL->Clear();
    // le añadimos la consulta SQL
    ADOQuery1->SQL->Add("SELECT id, apellidos,direccion  FROM Clientes");
    ADOQuery1->SQL->Add("WHERE nombre = name");
    // ejecutamos la consulta
    ADOQuery1->Open();

    // Muestro el resultado de la consulta en un DBGrid
    DataSource1->DataSet = ADOQuery1;
    DBGrid1->DataSource = DataSource1;

Espero haberte ayudado en algo...
[size=109]Sólo sé que esto no va a terminar conmigo, sin embargo yo sí que lo terminaré a él.[/size]