Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Campo de tabla con valores con un mismo nombre (https://www.clubdelphi.com/foros/showthread.php?t=27553)

kakesoft 24-11-2005 01:14:10

Campo de tabla con valores con un mismo nombre
 
Lo que quisiera hacer es sencillo, tengo una tabla que se llama Tabla1 y esa tabla tiene dos campos uno es Nombre y otro es Contraseña, en mi proyecto muestro un Form donde el visitante a mi aplicación puede crearse un nuevo usuario y quisiera saber cómo detectar si ya existe un usuario con el nombre Guille y entran otro con el mismo nombre entonces mostrar un mensaje diciendo o dando a conocer la existencia en la base de datos un usuario con ese nombre ya. No se si me entiendo lo que quisiera es que en el campo Usuarios no hallan dos valores insertados que coincidan. ok saludosss de antemano y graciassss

vtdeleon 24-11-2005 01:24:32

Saludos

Tienes 2 opciones:
1) Crear un indice primario (el campo "Nombre") y capturar la Exception al momento de querer insertar un valor duplicado.

2) Utilizar el metodo Locate* del dataset. if table1.locate(.....)

*Existe un ejemplo en la ayuda de delphi!!!

kakesoft 24-11-2005 04:00:06

Socio si está dentro de tus posibilidades me gustaría que me explicaras un poquito mejor sobre esta función para utilizarla en base a lo que quiero lograr, o sea, un ejemplito de código para yo ponerlo en práctica y decirte que tal o cómo me pincho ok, cuídate brother graciasss

vtdeleon 24-11-2005 04:19:13

Saludos

Disculpa que te lo diga, pero no puedo darte mas informacion aunque quiera, pues en la ayuda existe, y bastante clara. Aqui en el foro tambien existe mucha informacion y de calidad.
Pon un poquito de tu parte men;)

Neftali [Germán.Estévez] 24-11-2005 11:41:59

Opta por la opción (1) que te comentan. Es la más eficiente y segura y lo único que tienes que programar es la captura del error.

mazinger 24-11-2005 12:52:46

Sin embargo, el establecer limitaciones en la base de datos, tiene el problema de si tienes en algún momento que modificar la propia base de datos que tengan los clientes.
También puedes optar por examinar con un SQL la existencia del nombre concreto por ejemplo

SQL.Add('SELECT Nombre FROM Tabla1 Where Nombre = "Guille"');
Open;
If RecordCount>0 Then ShowMessage('Ya existe el nombre de usuario');

Neftali [Germán.Estévez] 24-11-2005 13:19:32

Cita:

Empezado por mazinger
Sin embargo, el establecer limitaciones en la base de datos, tiene el problema de si tienes en algún momento que modificar la propia base de datos que tengan los clientes.

Correcto, pero es que si no lo haces así tendrás una situación potencialmente peligrosa, ya que puedes estar pensando que el programa no va a dejar utilizar nombres duplicados, pero encambio la Base de Datos pueder ser que los tenga.
Entonces es como si no hicieras nada, porque estás programando una cosa, que luego no te puedes fiar de que se cumpla (por los registros antiguos). Así que considero que, lo hagas como lo hagas, debes modificar la Base de Datos igualmente, para dejarla coherente y correcta.

Cita:

Empezado por mazinger
También puedes optar por examinar con un SQL la existencia del nombre concreto...

Aunque funciona, creo que es una solución redundante; Es una comprobación que va a realizar la BD (con un índice único) de forma más eficiente, entonces, ¿Porqué programarla nosotros?

kakesoft 25-11-2005 22:24:39

Vtdeleon se que tu cuestión no está en que no quieras ayudarme, de hecho me estás ayudando, pero me haría falta que me dijeras un poquito más exacto dónde o sea en qué parte de la ayuda de delphi se encuentra eso, es que la ayuda de delphi es muy grande brother, y en cuanto a Neftali me gustaría si no es de molestia que me pusiera un ejemplito de código de como puedo capturar el error del que habla que a penas se cual es ese error ok no se molesten pienso que tienen las más buenas intenciones de ayudarme ok cuídense saludosss

vtdeleon 25-11-2005 23:53:45

Saludos
Cita:

Empezado por kakesoft
pero me haría falta que me dijeras un poquito más exacto dónde o sea en qué parte de la ayuda de delphi se encuentra eso, es que la ayuda de delphi es muy grande brother,

Una de las mejores cosas que han hecho el equipo de "Borldand Delphi" es la ayuda, solo con posicionar el cursor en cualquier propiedad, metodo, funcion, procedimiento,... y darle a F1 y aparecera la ayuda apuntando a esa propiedad, metodo,.....; definiendolo y explicandolo

kakesoft 26-11-2005 01:26:22

ok men el problema no es ese yo eso si me lo se y lo he utilizado mucho pero es que me salen varias ayudas sobre Locate y no se donde está, he buscado en algunas y no me sale el ejemplo

kakesoft 26-11-2005 01:57:19

Socio discúlpame pero no he podido dar con lo que busco y he visto algo de código si puedes ayúdame un poco más, eso no te cuesta tanto creo yo, socio te lo agradeceré muchísimo, estoy hasta el cuello con eso, es lo unicó casi casi que me falta para terminar mi tesis

roman 26-11-2005 02:01:45

En Delphi7 abres el contenido de la ayuda (primera pestaña), abres el tema "Developing Database Applications" y el subtema "Understanding datasets". Ahí encontrarás el tópico "Using Locate" en donde encontrarás el ejemplo de uso.

// Saludos

kakesoft 26-11-2005 02:04:25

Socio discúlpame pero no he podido dar con lo que busco y he visto algo de código si puedes ayúdame un poco más, eso no te cuesta tanto creo yo, socio te lo agradeceré muchísimo, estoy hasta el cuello con eso, es lo unicó casi casi que me falta para terminar mi tesis

fidel 27-11-2005 15:14:42

Hola:

Parece que copiar y pegar la misma muletilla, ... Socio disculpame...., si que sabes, pero deberías poner un poco más de interés por tu parte.

Dices que sabes buscar en Delphi, pero o no sabes bien o no sabes exponer tus dudas.

Mira esfuerzate un mínimo y haz esto:

- Carga Delphi.

- Ecribe en cualquier sitio seis letras e, t, a, c, o, l pero molestate un poco y ponlas en orden de tal forma que pongan una palabra que es "locate".

- Selecciona esta palabra tan dificil que has escrito y pulsa una tecla que hay en la parte superior izquierda del teclado que tiene una letra mayúscula que en el abecedario va detrás de la E y un número que es el primero de los números enteros positivos.

- Si tienes la misma versión de delphi que yo y en el mismo idioma te aparecerá una ventana que dice así:
Temas encontrados.
Haga click en un tema y después en Mostrar.

Esto hay que leerselo para saber lo que pone, de lo contrario no te enterarás de nada.

En mi versión hay ocho temas, no es tan dificil ir mirándolos, pero da la casualidad que si escojo el primer tema me sale algo que no voy a poner aquí.

A partir de ahí si algo sigues sin entender sigues preguntado, pero con algo más de interés por tu parte, porque al fín y al cabo es a quien le intersa.

Aunque supongo que todo esto que he escrito es mucho esfuerzo leertelo y no servirá de nada.

Un salulo.

kakesoft 28-11-2005 14:40:46

ok muchas gracias pienso que me por lo expuesto y se los agradezco mucho ya que tendré en cuenta todo eso que me dices Fide ok saludosss para todos


La franja horaria es GMT +2. Ahora son las 05:45:08.

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