Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2003
abril abril is offline
Registrado
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 7
Poder: 0
abril Va por buen camino
Question de Visual Basic a Delphi... Manipulacion de campos!!

Hola Gracias por darme un poco de tu tiempo.......

En Visual Basic yo puedo hacer busquedas en campos con un like y mostrarlo en una etiqueta de esta forma ........

Set Rtabla=base.openrecordset("select * from Tabla where campo like 'A' ")...

de esta manera manipulo muy facil el resultado de mi recordset....

puedo hacer esto :

label1=Rtabla!nombre

como puedo hacerlo en delphi?

Muchas gracias!!!...... me servira mucho tu ayuda.


Responder Con Cita
  #2  
Antiguo 26-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Ante todo debes diferenciar algunos conceptos importantes.

En Delphi no existen las propiedades por defecto (No del todo, algo así existe con las array properties), entonces cuando escribes Label1 := Algo, te estas refiriendo al objeto label1 y no a la propiedad text, sería como en VB hacer SET Label1 = Algo
Delphi es un lenguaje fuertemente tipado, y exige integridad entre los tipos de datos, en VB es muy común asignar diferentes tipos de datos sin hacer casts de los mismos, en Delphi son muy pocos los casos, que podemos mezclar peras con batatas. (Solo cuando a la larga se trata del mismo tipo de dato)
En Delphi cada ves que creas un objeto, tienes que destruirlo, en VB nunca queda claro cuando se destruye un recordset, el proceso normal es asignarle nothing, si en Delphi le asignas nil a la variable, el objeto seguirá existiendo en memoria pero no se ha destruido..


Código:
var
 MiQuery: TQuery;
begin
 MiQuery := TQuery.Create(Self);
 try
   MiQuery.DatabaseName := 'MiBase';
   MiQuery.SQL.Text := 'select * from Tabla where campo like ''A%''';
   MiQuery.Open;

   Label1.Caption := MiQuery.FieldByName('NOMBRE').AsString;
 finally
   MiQuery.Free;
 end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 26-06-2003 a las 18:31:07.
Responder Con Cita
  #3  
Antiguo 30-06-2003
abril abril is offline
Registrado
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 7
Poder: 0
abril Va por buen camino
Talking

Muchas gracias!!!....

Me fue muy util tu comentario.... logre el resultado que queria...

Gracias Mil.



Responder Con Cita
  #4  
Antiguo 04-07-2003
abril abril is offline
Registrado
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 7
Poder: 0
abril Va por buen camino
tengo un apequeña duda.....

try

finally ....

es similar, igual o nada que ver....

BeginTrans
CommitTrans ???.....


si es igual el procedimiento es el mismo?..... tengo que asignarle un espacio de trabajo igual que lo hago en VB?.



gracias!....
Responder Con Cita
  #5  
Antiguo 04-07-2003
abril abril is offline
Registrado
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 7
Poder: 0
abril Va por buen camino
Question

tengo otra duda.....

try
finally

es igual, similar o nada que ver con...

BeginTrans
CommitTrans...

si es igual, el procedimiento es el mismo que en VB tengo que asignarle un espacio de trabajo?...







gracias!
Responder Con Cita
  #6  
Antiguo 04-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Código:
try
  {Mi Código}
finally
  {Código que se ejecutará siempre}
end;

try
  {Mi Código}
except
  {Código que se ejecutará ante un Error}
end;
Try... es la forma de capturar errores que tiene Delphi, y es MUY diferente a la de VB. El concepto viene de C, y es mas o menos así... La idea es definir bloques de capturas de errores, estos bloques están definidos entre el Try y el End, cuando usamos Finally, como en el ejemplo que te pasé, es porque queremos que lo que esta entre Finally y End se ejecute SI O SI, aunque se produzca un error entre el Try y el Finally. Cuando usamos Except, es porque queremos que el código entre el Except y el End se ejecute solo cuando se produce un error en el bloque.

En consultas de selección es inapropiado utilizar transacciones, por eso te voy a cambiar el ejemplo a un update, donde tenemos todos los tipos de capturas de errores:

Código:
var
 MiBase: TDatabase;
begin
 MiBase := TDatabase.Create(Self);
 try
   MiBase.AliasName := 'MiAlias';
   MiBase.Open;
   MiBase.StartTransaction;
   try
     MiBase.Execute('INSERT.... ');
     MiBase.Execute('UPDATE.... ');
     MiBase.Commit;
   except
     MiBase.Rollback ;
     raise;
   end;
 finally
   MiBase.Free;
 end;
end;

Te recomiendo leer los ejemplos de la ayuda.
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 21:42:23.


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