SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: ellerysammy en Jueves 2 de Diciembre de 2004, 05:02
-
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
-
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.
-
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
Espero te sirva
:comp:
-
: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.
-
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
-
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...