Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
validar un dbedit

quisiera saber como le haria para valiar un dbedit digamos, quiero poner un correo y si no lleva la textura q lleva u correo por ejemplo si falta la arroba, q salga un mensaje q no esta correo pero si lo esta q se guarden los datos a la table.

o digamos otra forma q he pensado no se si estaria buen es q en un combox elijan diferentes servidores d correos q salgan @homtail por ejmplo y q ese se concatene con lo escrito en el dbedit, pero no se como seria la concatenacion.

en fox la uso con los signos mas, epro en delphgirecien inicio y no se como seria.
Responder Con Cita
  #2  
Antiguo 12-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
La idea de el combobox sería buena en el caso de que las personas solo pudieran tener su correo en los servidores de tu lista y la concatenación al igual que en FOX es con el signo mas (+)...
Pero si yo quisiera hacer eso sin restringir el tipo de servidor al que las personas deban estar "afiliados" seria buscando la arroba y el punto en la cadena que escriban las personas así:
Código Delphi [-]
if (Pos(Edit1.Text, '@') <> 0) then
  if (Pos(Edit1.Text, '.') <> 0) then
  begin
    //Hago lo que tenga que hacer... 
  end;
Esa puede ser una manera de validar la cosa, pero me supongo que deben haber muchisimas mas..
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 12-03-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola moyo18
Bienvenido al ClubDelphi.
Para hacer lo que quieres, se puede hacer perfectamente con el combobox, para unir se usa el signo +, igual que en fox, supongo.
La parte de union en codigo seria algo asi:
Código Delphi [-]
Edtit1.text + Combobox.text;
Intenta probar asi, y cuando tengas algo de codigo, ponlo aqui y lo veremos mejor.
Saludos
Responder Con Cita
  #4  
Antiguo 12-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
ok, el problema q tengo es q, cuando le voy nuevo usuario, quisiera q los DBEdit aparecieran en blancoy tambien los INPUTMASK, pero cual le doy nuevo user me aparecen los values q estoy dando en el codigo d abajo de poner el user

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);


        begin
          with ADOTable1 do begin
            insert;
             FieldByName('UserID').Value := '9999999';
             FieldByName('LastName').Value := 'LastName';
             FieldByName('Name').Value := 'Name';
             FieldByName('Address').Value := 'Address';
             FieldByName('PostalCode').Value := 'Postal Code';
             FieldByName('City').Value := 'City';
             FieldByName('Phone').Value := '8787878';
             FieldByName('Email').Value := 'Email';
             FieldByName('Birthday').Value := '12/31/1900';
            post
          end ;
          SaveJpegToTable(ADOTable1, ADOTable1Picture, 'button.jpg') ;


end;


tambien digamos si le doy dos veces click al boton agrEGAR nuevo user si no he metido los cambios automaticamnte se guardan en la tabla los datos d arriba por ejmpplo el userid = 99999, entonces eso me traba la base d datos diciendo q ya esta metido antes y no se puede agregar otro. entonces quisiera saber como seria el codigo q lleva el signo mas del navegador predise;ado de delphi y q me aparescan los inputmask en blanco.


y este es para guardar el user, aki se tenria q ver lo d la validacion de lo del email pero no me funciona asi como esta arriba.

Código Delphi [-]
{UserId}
If (DBEdit2.Text = '') then
     ShowMessage('User Id is Empty')
else
 if (Pos(DBEdit2.Text, '@') <> 0) then
  if (Pos(DBEdit2.Text, '.') <> 0) then
  begin
   ADOTable1.Edit;
    DBEdit2.text := Maskedit1.Text ;
    DBEdit6.text := Maskedit2.Text ;
    DBEdit8.text := Maskedit3.Text ;
    DBEdit10.text := Maskedit4.Text ;
    ADOTable1UserID.AsString := DBEdit2.text;
    ADOTable1LastName.AsString := DBEdit3.text;
    ADOTable1Name.AsString := DBEdit4.text;
    ADOTable1Address.AsString := DBEdit5.text;
    ADOTable1PostalCode.AsString := DBEdit6.text;
    ADOTable1City.AsString := DBEdit7.text;
    ADOTable1Phone.AsString := DBEdit8.text;
    ADOTable1Email.AsString := DBEdit9.text;
    ADOTable1Birthday.AsString := DBEdit10.text;
   ADOTable1.Post;
  end
 else
  Showmessage ('The email entry is wrong');

end;



ARGEGAR UNA PICT A LA BASE D DATOS JPEG Y BMP

Código Delphi [-]
const
 JPEGstarts = 'FFD8';
 BMPstarts = '424D';  //BM

var
  Form1: TForm1;

implementation
   Uses jpeg;
{$R *.dfm}

{ fuction to see the picture }

function JpegStartsInBlob (PicField:TBlobField):integer;
var
 bS     : TADOBlobStream;
 buffer : Word;
 hx     : string;
begin
 Result := -1;
 bS := TADOBlobStream.Create(PicField, bmRead);
 try
  while (Result = -1) and (bS.Position + 1 < bS.Size) do
  begin
   bS.ReadBuffer(buffer, 1);
   hx:=IntToHex(buffer, 2);
   if hx = 'FF' then begin
     bS.ReadBuffer(buffer, 1);
     hx:=IntToHex(buffer, 2);
     if hx = 'D8' then Result := bS.Position - 2
     else if hx = 'FF' then bS.Position := bS.Position-1;
   end; //if
  end; //while
 finally
  bS.Free
 end;  //try
end;

{adding picture}



//Extra!! save JPG to table
procedure SaveJpegToTable(Table: TADOTable; PicField:TBlobField; sPicPath: string);
{
Usage:

  SPicFileName := 'C:\!gajba\cdcovers\cdcover1.jpg';
  SaveJpegToTable(ADOTable1, ADOTable1Picture, SPicFileName);
}
var
  fS  : TFileStream;
begin
  fs:=TFileStream.Create(sPicPath, fmOpenRead);
  try
   Table.Edit;
   PicField.LoadFromStream(fs);
   Table.Post;
  finally
   fs.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  bS  : TADOBlobStream;
  Pic : TJpegImage;
begin

  if opendialog1.execute then
    begin
      SaveJpegToTable(ADOTable1, ADOTable1picture, Opendialog1.filename);
    end;
    bS := TADOBlobStream.Create(AdoTable1Picture, bmRead);
  try
    bS.Seek(JpegStartsInBlob(AdoTable1Picture), soFromBeginning);
    Pic:=TJpegImage.Create;
    try
     Pic.LoadFromStream(bS);
     Image1.Picture.Graphic:=Pic;
    finally
     Pic.Free;
    end;
  finally
    bS.Free
  end;

end;







espero entienda lo q estoy haciendo.

la tabla esta en access y estoy usando adotable y adoconnection.

Última edición por moyo18 fecha: 12-03-2007 a las 23:14:19.
Responder Con Cita
  #5  
Antiguo 12-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Porque colocaste (Pos(Edit1.Text, '@') <> 2) se supone que era (Pos(Edit1.Text, '@') <> 0)...

Por otro lado te pido el favor que redactes bien porque se dificulta mucho el leer textos como el que haz escrito.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 12-03-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Yo podrí poner vtdeleon.@ y sería válido

Me guiaré del código de jhonny (porque me da pereza leer el de mas arriba)
Código Delphi [-]
var
 M,N:Integer;
begin
 M:=Pos(Edit1.Text, '@');
 N:=Pos(Edit1.Text, '.')
if (M> 1) then
  if (N+2 > M) then//tambien podría ponerse Legth para saber la cantidad de caracteres 
                         //y que este sea mayor que la posición del punto (.)
  begin
    //Hago lo que tenga que hacer... 
  end;
Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 12-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
El problema con el codigo de vtdeleon es que no sería valido el siguiente:

jhonny.yonny@clubdelphi.com

Mas bien le agregaria algo que mire que despues de la arroba haya un punto(.) pero que ese punto no sea el ultimo caracter como bien ya lo ha indicado vtdeleon...

Parece que esto es mas complicado de lo que se cree, jejeje.

Ejemplo pachuco:

Código Delphi [-]
Copy('jhonny.yonny@clubdelphi.com', 
Pos('jhonny.yonny@clubdelphi.com','@'), 
Length('jhonny.yonny@clubdelphi.com')); //Si la respuesta es vacia pues de entrada ya esto quiere
// decir que el email no es valido... De lo contrario...

Eso me devolveria solo la cadena despues de la @ y alli si evaluar que haya un proximo punto y que ademas no sea el ultimo.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 12-03-2007 a las 23:05:13.
Responder Con Cita
  #8  
Antiguo 12-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
ya esta a ver si entiendes ahroa, gracias por la ayuda.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Validar un Dbedit? kman Varios 10 13-03-2007 04:07:11
Validar y Autocompletar Fecha en un DBEdit gluglu OOP 4 29-12-2006 11:24:06
Validar un DBEdit con delphi interbase servicomp Conexión con bases de datos 8 06-08-2006 16:27:11
validar dbedit yeison Cristman Conexión con bases de datos 1 29-07-2006 21:55:56
como validar datos en el evento onkeypress de un dbedit? viajero2015 Varios 1 01-02-2004 21:41:59


La franja horaria es GMT +2. Ahora son las 02:39:17.


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