Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2004
ricardocid ricardocid is offline
Registrado
 
Registrado: may 2004
Posts: 7
Poder: 0
ricardocid Va por buen camino
Question AyUda !!EXAMEN de SQL

Por favor necesito que me ayuden, el viernes tengo que rendir un examen en el trabajo de delphi, me dijieron que mas o menos en lo que consiste y necesito que me ayuden. Trabaje en VisualBasic durante mucho tiempo perfectamente y el traslado a Delphi se me esta complicando.
En primer termino trabaja sobre tablas planas EJ
TABLA: PAISES
REGISTROS
*nombre(campo clave)
*capital
*poblacion
*area
*densidad

Debo poder ingresar un registro si este no existe anteriormente.
Yo tengo pensado hacer
sentencia SQL select nombre from paises where nombre = textbox
luego comparar el resultado
si es nulo
no permito la edicion
si no es nulo
permito la edicion

El problema que al no conocer bien la estructura del codigo no me sale

MODIFICAR, ELIMINAR Y DEMAS YA LO SE HACER PERO NO ME SALE EJECUTAR LA SENTENCIA. Esto es lo que intente

busqueda := t_pais.Text;
QConsulta.Close;
QConsulta.SQL.Text:='Select Nombre from paises where Nombres = : busqueda & ;';
QConsulta.Open;
result :=QConsulta.fields[0].asstring;

POR FAVOR AYUDENME LO MAS EXPLICITO Y DETALLADO QUE PUEDAN SE LOS VOY AGRADECER YA QUE ES POR TRABAJO.
Gracias
Responder Con Cita
  #2  
Antiguo 26-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Te falta decir con que componentes te conectas y a qué base de datos. Access, Dbase, Paradox?

Código SQL [-]
busqueda := t_pais.Text;
QConsulta.Close;
QConsulta.SQL.Text:='Select Nombre from paises where Nombres = ' +QuotedStr(Edit1.Text);
QConsulta.Open;
result :=QConsulta.fields[0].asstring;

Lo que te pongo puede ser una solución fácil.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 26-05-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 20
weke Va por buen camino
¡Buenas!

Yo para comprobar si existe un registro o no, antes de insertarlo, lo hago sin utilizar una consulta SQL, de la siguiente manera:
Código:
	esta:=Table1.FindKey([campo_calve_primaria, campo_calve_primaria]);
	if (esta = false) then
//inserto el elemento
Nota: 'esta' es una variable boolean, que no es necesaria si lo haces de la siguiente forma:
Código:
	if (Table1.FindKey([campo_calve_primaria, campo_calve_primaria]) = false) then
//inserto el elemento
La cuestión es que en el 'FindKey' introduces el campo o campos que forman la clave primaria para que busque en la tabla, si existe te devuelve cierto y si no existe de devuelve falso.

Espero que te sirva.

Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #4  
Antiguo 26-05-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Talking Nada mas falta

Bueno las respuestas anteriores son unas de varias opciones,

Tambien puedes hacerlo con Locate
o levantando una excepcion y mandando un mensaje diciendoles
ejele ejele ese ya esta

osease ya tienes 4 opciones
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #5  
Antiguo 26-05-2004
ricardocid ricardocid is offline
Registrado
 
Registrado: may 2004
Posts: 7
Poder: 0
ricardocid Va por buen camino
Question mas ayuda!!!!

gRACIAS POR responder, ese tema ya lo solucione gracias a ustedes, ahora tengo que validar los campos,
*nombre(campo clave)(LETRAS)
*capital(LETRAS)
*poblacion(NUMEROS)
*area(NUMEROS)
*densidad(NUMEROS)

YO EN VISUAL LO HACIA ASI, EN DELPHI COMO ES?
Private Sub c_devuelto_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then c_devuelto2.SetFocus
cadena = "0123456789" + Chr(8) 'chr(8) = delete, es decir admitimos borrar
If InStr(cadena, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub

MUCHAS GRACIAS Y POR FAVOR SIGANME AYUDANDOME
Responder Con Cita
  #6  
Antiguo 26-05-2004
ricardocid ricardocid is offline
Registrado
 
Registrado: may 2004
Posts: 7
Poder: 0
ricardocid Va por buen camino
Question Otra consulta mas

QConsulta.Close;
QConsulta.SQL.Text:='Select Name, Capital, Continent, Area, Population from country where Name = ' + QuotedStr(t_pais.Text);
QConsulta.Open;

¿Como hago para poner el nambre en un text, capital en otro text, area en otro text y population en otro text,
Aclaro que el nombre por el cual hagola busqueda es campo unico, por lo tanto me va a devolver u solo registro. Yo en visual usaba
capital.text=rs!Capital,
En delphi ¿como tengo que hacer?
Gracias por ayudarme
Responder Con Cita
  #7  
Antiguo 26-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código SQL [-]
Capital.Text:=Field[0].AsString;

El 0 tienes que sustituirlo por el lugar que ocupe el campo en el Sql empezando por 0 hast x -1.

Si creas campos persistentes:
Entonces podrías hacer:

Código SQL [-]
Capital.TExt:=Quer1Micampo.Value;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #8  
Antiguo 26-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Otra opción.

Capital.Txt = Query1.FieldByName('Capital').AsString;

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 26-05-2004
ricardocid ricardocid is offline
Registrado
 
Registrado: may 2004
Posts: 7
Poder: 0
ricardocid Va por buen camino
Otra consulta mas

La de asigncion sobre una sentencia SQL ya lo solucione ahora me falta:

El update en delphi como lo toma?

QConsulta.Close;
QConsulta.SQL.Text:='update country set Capital := t_capital.Text where Capital = ' + QuotedStr(t_pais.Text);
QConsulta.Open;

tengo que actualizar el campo capital con lo ingresado en un text, y lo busca con lo ingresado en el textpais, ese vendria a ser el campo unico
¿COMO SERIA LA SENTENCIA?

NO ME RESPONDIERON LA CONSULTA SOBRE EL KEYPRESS EN DELPHI, POR FAVOR AYUDENME YA QUE ES PARA ENTRAR A UN LABURO
Responder Con Cita
  #10  
Antiguo 26-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Código Delphi [-]
QConsulta.SQL.Text := 'update country set Capital = ' + 
         QuotedStr(t_capital.Text) + ' where Capital = ' + QuotedStr(t_pais.Text);
QConsulta.ExecSQL;
Responder Con Cita
  #11  
Antiguo 27-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Hola compañero,

veo que eres nuevo y que además andas un poquillo apurado
De todas maneras seria de agradecer que le echases un vistazo a la guia de estilo. Para empezar, podrías hacer un par de cosas, pon tu codigo entre etiquetas "[code]" o "[delphi]" para que se vea bien el codigo y abre un hilo nuevo para cada consulta. Piensa que así, si otro compañero tiene la misma duda, la podrá encontrar más facilmente en la herramienta de búsqueda
__________________
E pur si muove
Responder Con Cita
  #12  
Antiguo 27-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Cita:
Empezado por ricardocid
NO ME RESPONDIERON LA CONSULTA SOBRE EL KEYPRESS EN DELPHI, POR FAVOR AYUDENME YA QUE ES PARA ENTRAR A UN LABURO
No te voy a traducir el código, pero mirando en la ayuda lo encontrarás fácil. Búsca lo siguiente:

OnKeyPress ->fíjate en los parámetros
Pos -> en lugar de InStr

suerte


por cierto... no hace falta que insistas más en lo urgente que es... piensa que aquí nadie pregunta por gusto
__________________
E pur si muove
Responder Con Cita
  #13  
Antiguo 27-05-2004
ricardocid ricardocid is offline
Registrado
 
Registrado: may 2004
Posts: 7
Poder: 0
ricardocid Va por buen camino
Exclamation Sobre el KeyPress

Estuve viendo la ayuda y sinceramente no es nada clara.
Por lo que interprete arme esta sentencia que me da error:
Código Delphi [-]
 
If KeyAscii = 13 Then 
  c_devuelto2.SetFocus
cadena := '0123456789' + Chr(8); 
If InStr(cadena, Chr(KeyAscii)) = 0 Then
  KeyAscii := 0;
Yo lo que tengo que hacer es que en el text solo me deje escribir numeros, agradeceria si alguien se tomara el tiempo de escribir el codigo
Con respecto a lo del apuro, pido disculpas. Y al ser nuevo en este foro no sabia algunas de las reglas con las cuales se manejan
Gracias por responder.

Última edición por marto fecha: 27-05-2004 a las 09:54:14.
Responder Con Cita
  #14  
Antiguo 27-05-2004
Agar23 Agar23 is offline
Miembro
 
Registrado: nov 2003
Ubicación: Sevilla
Posts: 18
Poder: 0
Agar23 Va por buen camino
Código Delphi [-]
procedure TForm.KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in (['0'..'9',#8])) then key:=#0;
end;
Responder Con Cita
  #15  
Antiguo 27-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Cita:
Empezado por ricardocid
Con respecto a lo del apuro, pido disculpas. Y al ser nuevo en este foro no sabia algunas de las reglas con las cuales se manejan
Bueno, tranquilo, todos hemos sido nuevos, la gracia está en no tropezar dos veces con la misma piedra.

Por cierto, he editado tu mensaje para poner el código entre etiquetas "[delphi]", ¿ves la diferencia?....
__________________
E pur si muove
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:12:40.


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
Copyright 1996-2007 Club Delphi