Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Pregunta facil Interbase (https://www.clubdelphi.com/foros/showthread.php?t=34172)

jander.atlas 30-07-2006 14:27:55

Pregunta facil Interbase
 
Tengo una base de datos interbase en mi programa.Quería saber como inserto valores en una tabla, pero no valores fijos como pueda ser mediante una consulta:

Código:

IBQuery2->SQL->Add("Insert into COMPETICION(IDCOMPETICION,NOMBRE,CONTINENTE)
                    values('Carlos','Pepito','Grillo')");

Sino que pueda meter valores que el usuario me introduzca en un edit o en algun otro componente.Supongo que será muy facil pero me he quedado trabado.
Gracias de antemano.

Héctor Randolph 30-07-2006 22:25:38

Hola jander.atlas

Puedes hacerlo mediante parámetros, por ejemplo:

Código:

IBQuery2->SQL->Add("Insert into COMPETICION(IDCOMPETICION,NOMBRE,CONTINENTE)
                    values(:Id,:Nombre,:Continente)");

Para indicar que se trata de parámetros he puesto el signo ':' delante del nombre.

Después puedes asignarle valores a los parámetros de esta forma:

Código:

  IBQuery2->ParamByName('Nombre').AsString=Edit1->Text;
Saludos

Lepe 31-07-2006 10:20:39

Cita:

values(:Id,:Nombre,:Continente)");
Si los nombres que ponen delante de los dos puntos ":" coinciden con los nombres de los campos (caso de "Nombre" y "Continente") se debe usar FieldbyName para darle el valor, y si usamos un nombre distinto ( "ID" no es el nombre del campo, en realidad es "IDCOMPETICION") tenemos que usar ParambyName.
Código:

IBQuery2->SQL->Add("Insert into COMPETICION(IDCOMPETICION,NOMBRE,CONTINENTE)
                    values(:Idcompeticion,:Nombre,:Continente)");
IBQuery2->FieldbyName('idcompeticion')->AsString = Edit1->Text;
IBQuery2->FieldbyName('Nombre')->AsString = Edit2->Text;
IBQuery2->FieldbyName('continente')->AsString = Edit3->Text;

Código:

IBQuery2->SQL->Add("Insert into COMPETICION(IDCOMPETICION,NOMBRE,CONTINENTE)
                    values(: prIdcompeticion,: prNombre,: prContinente)");
IBQuery2->ParambyName('prIdcompeticion')->AsString = Edit1->Text;
IBQuery2->ParambyName('prNombre')->AsString = Edit2->Text;
IBQuery2->ParambyName('prContinente')->AsString = Edit3->Text;

Si estas usando DBEdits, no hace falta dar los "FieldbyName", los valores se recogerán automáticamente de dichos DBEdits.

PD: No estoy muy seguro de cuando se usa el operador flecha "->" o el operador punto ".", eso te toca a tí ;)

Saludos


La franja horaria es GMT +2. Ahora son las 22:55:44.

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