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
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
Cita:
Empezado por jhonny
El problema con el codigo de vtdeleon es que no sería valido el siguiente:

jhonny.yonny@clubdelphi.com
"tenes razón chamo, tenes razón"
Y que tal esto?
Código Delphi [-]
var
 M,N:Integer;
 SubCadena:String;
begin
 M:=Pos(Edit1.Text, '@');
 SubCadena=Copy(Edit1.Text,M,Length(Edit1.Text));
 N:=Pos(SubCadena, '.')
if (M> 1) then
  if (N>2) 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;
Lo de ">2" o ">1" lo pongo porque me da la impresión (y puedo estar equivocado) de que hay muy pocos o ningún correo que sea "x@x.com", ya eso depende de quien lo quiera usar así o como jhonny "<>0".
__________________
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!

Última edición por vtdeleon fecha: 12-03-2007 a las 23:59:26.
Responder Con Cita
  #2  
Antiguo 13-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
Cita:
Empezado por vtdeleon
tenes razón chamo, tenes razón"
Chamo??? Acaso esa palabra no la usan es en Venezuela?

Bueno mi amigo, según parece la cosa va quedando así:
Código Delphi [-]
 
var
 M,N :Integer;
 SubCadena :String;
begin
  M:=Pos(Edit1.Text, '@');
  if (M > 1) then
  begin
    SubCadena=Copy(Edit1.Text,M,Length(Edit1.Text));
    N:=Pos(SubCadena, '.')
    if ((N>2) and (Length(SubCadena)<>N) ) then
    begin
      //Hago lo que tenga que hacer...
    end;
  end;
end;

Le agregue de una vez por todas el Length , y coloque el if (M > 1) arriba para que en caso de que la @ no exista en la cadena pues no tenga que esperar hasta el final para darse cuenta de eso.

En cuanto a las confusiones que tienes acerca de la función que utilice en mi anterior Post pues te diré que lo que sucede es que estaba haciendo parte de lo que vtdeleon acaba de explicarte en su código anterior de una manera mas detallada... Mejor dicho no atiendas ese post y concentrate en el que estamos armando en este momento.
__________________
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 13-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
intente haciendo como dices y no se puede, siempre guarda el dato, lleve o no lleve arroba ni punto, no me servidira la validacion.

y como seria para poner en blanco todo al querer insertar un nuevo usuario sin necesidad de poner los values q estan en el codigo d arriba, habia intentado asi

edit1.text = '' ;

pero pues me pone todo blanco pero a la hora d insertar los valores siempre los values q estan arriba me aparecen

estos

Código Delphi [-]
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
Responder Con Cita
  #4  
Antiguo 13-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
viendo como iria quedando seria asi, pero sigue igual, los datos ingresados en el DBEDIT siempre se guardan llevando o no llevando la arroba o el punto, y ahora pasa algo, los datos q entro en los inputmask q son los q llevaran los otros DBEdit, con ese codigo q se lo pongo antes ya no se guardan ni nada, queda los values q esta arriba como

userid = 9999 y asi con los demas

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
 M,N :Integer;
 SubCadena :String;
begin
  M:=Pos(DBEdit9.Text, '@');
  if (M > 1) then
  begin
    SubCadena:=Copy(DBEdit9.Text,M,Length(Edit1.Text));
    N:=Pos(SubCadena, '.') ;
    if ((N>2) and (Length(SubCadena)<>N) ) 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;
 end;
end;
Responder Con Cita
  #5  
Antiguo 13-03-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Cita:
Empezado por moyo18
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject); var  M,N :Integer;  SubCadena :String; begin   M:=Pos(DBEdit9.Text, '@');   if (M > 1) then   begin     SubCadena:=Copy(DBEdit9.Text,M,Length(Edit1.Text));     N:=Pos(SubCadena, '.') ;     if ((N>2) and (Length(SubCadena)<>N) ) 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;  end; end;
No necesitas asignar los DBEdit a los campos, eso ya lo hacen los controles por sí mismos si tienen asignada la propiedad Datafield.

Cita:
Empezado por moyo18
Código Delphi [-]

            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

Aquí añades ya el registro con los valores, por eso te salen esos valores y los guarda al hacer el post. Te bastaría con hacer el Insert, o Append y no dar valores a los campos, excepto a los que quieras que tengan un valor por defecto, y no hacer el post.


Ej:
Código Delphi [-]
procedure TForm1.BtnNuevoClick(Sender : TObject);
begin
  if not (AdoTable1.State in [dsEdit, dsInsert]) then
    AdoTable1.Insert; // o AdoTable1.Append
end;

procedure TForm1.BtnGuardarClick(Sender : TObject);
begin
  if AdoTable1.State in [dsEdit, dsInsert] then
    AdoTable1.Post;
end;
Responder Con Cita
  #6  
Antiguo 13-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
Cita:
Empezado por moyo18
intente haciendo como dices y no se puede
Si se puede, lo que pasa es que debes entender el código y luego aplicarlo a tu necesidad.
__________________
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
  #7  
Antiguo 13-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Esos Pos son incorrectos; el primer argumento es la cadena a buscar y el segundo la cadena donde se busca.

Por otra parte, me valida como correcto direcciones como:

jhonny.yonny@clubdelphi.com.

o

.jhonny.yonny@clubdelphi.com

o

jhonny..yonny@clubdelphi.com

// Saludos
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 22:25:46.


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