Delphi - hacer busqueda en base datos

 
Vista:

hacer busqueda en base datos

Publicado por Soledad (2 intervenciones) el 13/02/2013 01:36:02
Hola a todos...

estoy luchando apra acer andar una aplicacion, simple facil y cencilla... (para los que saben programacion)..

para mi es dificil, jodida y complicada

vengo al ciber a buscar info.. pero lo que encuentro no me sirve de mucho...

tengo una bse datos, con dos tablas. Tengo un formulario para cargar datos, los cuales se almacenaran un las dos tablas, (Tabla_nombre, Tabla_numero)
Cada tabla contiene campos

Tabla_nombre, (3 campos)
nombre : string
comentario : string
Numero: string


Tabla_numero: (2 campos)
Numer: string
Nombre: string


1
2
3
4
5
ADOTabla_numero.APPEND;
ADOTabla_numero.FieldByName('nombre').AsString := Edit1.Text;
ADOTabla_numero.FieldByName('nume).AsString := Edit3.Text;
ADOTabla_numero.Post;
 

El adoconection, adotable y datasource.. todo enlazado correctamente.

Luego de cargar los datos en los edit, presionar boton guardar me guarda correctamente en la tabla_numero.

Ahora le quiero agregar esto...

Despues de guardar tabla_numero, Buscara el NOMBRE que esta en el Edit1.Text en la tabla Tabla_nombre (la otra tabla)
Buscara ese nombre, si esta ese nombre en esa tabla, me agregara a esa tabla lo que hay en el Edit3.Text.
SEria como actualizar....

estaba probando algo asi... no se mucho d eprogramacion, asi que ese el el drama que tengo, agradeceria que me corrigieran mis errores...

1
2
3
4
5
6
Person := edit1.text;       // aca esta el nombre de la persona
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('SELECT nombre from Tabla_nombre');  // Nombre_campo From Nombre_Tabla
        query1.SQL.Add(' where  nombre LIKE ' +quotedstr( Person + '%')+' ');
        query1.Open;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

hacer busqueda en base datos

Publicado por E.T. (1244 intervenciones) el 13/02/2013 17:33:28
Sería algo asi:
1
2
3
4
5
6
7
query1.Close;
  query1.SQL.Clear;
  query1.SQL.Add('Update tabla_nombre');
  query1.SQL.Add('set comentario = ' + QuotedStr(Edit3.text));
  query1.SQL.Add('where nombre = ' + QuotedStr(Edit1.text));
  query1.ExecSql; //Esta linea no se si sea correcta, pues es diferente para distintos
//componentes, busca cualquiera que se paresca a Exec

Con esto lo que tengas en el edit3 lo va a poner en el campo comentario, en la tabla talba_nombre, en todos los registros donde aparesca el nombre que tengas en el edit1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hacer busqueda en base datos

Publicado por Soledad (1 intervención) el 14/02/2013 06:06:55
gracias por responderme, lo estuve probando, pero me salta este error...


error EDBEngineError whit mesasge "General SQL error Microsoft Controlador ODBC Microsoft Acces. Pocos parámetros. Se esperaba 1."


creo que se debe a alguna mala configuración hecha...

Lo que ice fue lo siguiente...


En el Formulario Form_Guardar_Reg

tengo ADOTable vinculado al datamodule2.adoconnection1, datasource1 conectado al ADOtable

En este form cargo unos datos en edit que son guardados en la Tabla_numero
Tabla_numero: (2 campos)
Numer: string
Nombre: string


Bien asta aca, funciona y guarda, ahora agrego esto...

Ahora le agregué a este mismo form,
* DataBase (aliasname: Tabla_nombre, DataBaseName: DBnombre)
* Query (name:: Query1, DataBaseName: DBnombre, SQL Select * from Tabla_nombre?
* Datasource2 (DataSet: Query1)

Y en el boton guardar, le agregué el codigo que me escribió en el mensaje anterior


***********************************************************************************



// boton POST, GUARDAR
procedure TForm_Guardar.Button2Click(Sender: TObject);
var
xx : integer;
Persona , : string;

begin // Guarda en Tabla_numero:

ADOTabla_numero.APPEND;
ADOTabla_numero.FieldByName('nombre').AsString := Edit1.Text;
ADOTabla_numero.FieldByName('numer).AsString := Edit3.Text;
ADOTabla_numero.Post;



// aca aria la búsqueda, si existe el nombre en la otra tabla
// me guardara en esa otra tabla (tabla_nombre) en el campo numero, lo que hay en Edit3.text

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('Update Tabla_nombre');
query1.SQL.Add('set Numer = ' + QuotedStr(Edit3.text)); // tiene un numero, que seria un numero de tramite que realizo la persona
query1.SQL.Add('where Nombre = ' + QuotedStr(Edit1.text)); // en edit1 hay un nombre
query1.ExecSQL;





// Calculo el valor ultimo registro cargado, le sumo 1, y obtengo el siguiente valor
//concecutivo de registro y lo pongo en EDIT1.TEXT
// para cuando quiero ingresar un nuevo registro, siempre me apuntara al nuevo registro

// esto ya me salta otro error, creo que esto esta demas
// el campo NUMER de la tabla Tabla_numero me da este valor, es la clave principal
// ADOTable1.Last;
// xx := StrToInt(ADOTable1.FieldByName('Numer').AsString) + 1;
// edit3.text := IntToStr(xx);



// Limpio los edit para carga de nuevos datos
Edit3.clear; // aca estaría el Numero de tramite (campo: Numer)

Edit2.clear;
Edit4.clear;
Edit1.setfocus; // aca ingreso el nombre
end;


***********************************************************************************

y bueno... algo esta mal, debe ser error o tal ves HORROR mió...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

hacer busqueda en base datos

Publicado por E.T. (1244 intervenciones) el 14/02/2013 17:23:04
El error que te sale en el update se debe a que estas insertando un numero, y no un string como originalmente te habia dicho yo, entonces el update se haria de la siguiente forma
1
2
3
4
5
6
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('Update Tabla_nombre');
query1.SQL.Add('set Numer = ' + Edit3.text);
query1.SQL.Add('where Nombre = ' + QuotedStr(Edit1.text));
query1.ExecSQL;

Nota: en sql, cuando vas a insertar o a validar algun dato tipo string o date, el valor debe ir entre comillas, lo cual lo hace la funcion quotedStr, pero al insertar o validar datos numericos se agrega el valor tal cual, sin comillas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hacer busqueda en base datos

Publicado por Soledad (1 intervención) el 17/02/2013 01:28:48
bien, gracias, muchas gracias, ahora si anda, me graba...

pero me gustaria ver como agregarle la nueva informacion, sin borrar lo que ya habia anteriormente

osea.. algo asi

Numer + ' , ' + Edit3.text

Seria.. El contenido del campo Numer, le agrego una coma, y luego el contenido del edit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar