Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

INSERTAR SIN REPETICION

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: INSERTAR SIN REPETICION Responder citando

Hola amigos, sabeis si hay alguna setencia sql que me permita insertar un nuevo registro solo si la informacion a insertar no esta almacenada ya en la tabla. Yo lo hago asi:

query->Close();
query->SQL->Clear();
query->SQL->Add("select EquipoId from tbEquipo where Equipo=:equipo");
query->ParamByName("equipo")->AsString = cbEquipo->Text;
query->Open();
if(query->IsEmpty()){
query->Close();
query->SQL->Clear();
query->SQL->Add("insert into tbEquipo(Equipo) values(:equipo)");
query->ParamByName("marca")->AsString = cbMarca->Text;
query->ExecSQL();

Sabeis si hay alguna forma mas corta de hacer lo mismo, gracias.
Volver arriba
Mensaje    Asunto: Responder citando

hola JONAS, si requieres que no se repitan valores en una columna
lo mejor y mas correcto es declararla unica al momento de crear la tabla,
o bien crear un indice unico sobre esa columna despues de creada.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

mira estoy de acuerdo con Alfredo pero debes de diseñar ben tu BD
y crear una tabla con una llave primaria q en este caso seria EquipoID como llave primaria y asi no se tiene q repetir ese valor, yo lo hago asi:


float id_equipo = 0;
//Aqui seleccionamos el maximo id de la tabla EQUIPO
Query1->SQL->Text = "SELECT MAX(EquipoID) FROM EQUIPO ";
Query1->Open();
if( Query1->Fields->Fields[0]->AsString == "" ) //y si la cosulta es
id_equipo = 1 ; //igual a nada quiere decir q es el primer id_equipo
else
id_equipo = StrToFloat(Query1->Fields->Fields[0]->AsString) + 1; // de lo contrario le sumamos "1" al valor maximo q nos arroja la consulta

Query1->SQL->Text = "INSERT INTO EQUIPO(EQUIPO_ID)"
"VALUES("+ ID_EQUIPO +")";

Query1->ExecSQL();


Espero q te sirva.

ATTE
+ + ObeliX + +
"EL CONOCIMEINTO HUMANO PERTENECE AL MUNDO"
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.