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 13-09-2008
epenor epenor is offline
Miembro
 
Registrado: jul 2008
Posts: 22
Poder: 0
epenor Va por buen camino
Muy bien Delphi, me refiero a la funcion SysErrorMessageParam(ErrorCode: Integer; Param: string): string; del programa de facturacion de caral.

Segun he visto en el codigo esa funcion captura los errores que puede cometer la persona que opera el sistema y asi evita que la aplicacion "explote". Por ejemplo, si se deja algun Edit vacio que sea not null en la DB y se intenta guardarlo.

No veo ningun procedimiento desde donde se llame la funcion, pero si se refleja su funcionamiento, asi que quieria saber si esa funcion puede ser usada en una aplicacion similar a la de caral, porque me parece una funcion un tangto "generica" (no sé si es el termino correcto) porque no tiene refencias de otras partes del codigo de la aplicacion.

Está dicha funcion enlazada de alguna manera con los try...finaly?

Disculpen mi novatada.
Responder Con Cita
  #2  
Antiguo 13-09-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Estos tres funcionan juntos y sirven para llamar a otro programa.
El primero lo que hace es enviar un mensaje de error si detener el programa.
Código Delphi [-]
function SysErrorMessageParam(ErrorCode: Integer; Param: string): string;
var
  Len: Integer;
  Buffer: array[0..255] of Char;
  ArgArray: array[1..1] of PChar;
begin
  ArgArray[1] := PChar(Param);
  Len := FormatMessage(Format_Message_From_System or
    Format_Message_Argument_Array, nil, ErrorCode, 0, Buffer,
    SizeOf(Buffer), @ArgArray);
  while (Len > 0) and (Buffer[Len - 1] in [#0..#32, '.']) do Dec(Len);
  SetString(Result, Buffer, Len);
end;

Código Delphi [-]
function TFMainForm.ExecuteApp(AppName, Params: string): TProcessInformation;
var
  SI: TStartupInfo;
  PI: TProcessInformation;
begin
  FillChar(SI, SizeOf(SI), 0);
  with SI do
  begin
    cb := SizeOf(TStartupInfo);
    dwFlags := StartF_UseShowWindow;
    wShowWindow := sw_ShowNormal;
  end;
  if not CreateProcess(nil, PChar(AppName + ' ' + Params), nil,
           nil, False, 0, nil, nil, SI, PI) then
    raise EExecAppError.Create(SysErrorMessageParam(GetLastError, AppName));
  Result := PI;
end;

Código Delphi [-]
procedure TFMainForm.Launch(AppName, Params: string);
begin
  ExecuteApp(AppName, Params);
end;

Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 13-09-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aparte de lo dicho en el post anterior.....(revisalo)
Este es un ejemplo de lo que hace dicha funcion, ejecuta el proyect1 y veras lo que sucede.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 19-09-2008 a las 16:03:50.
Responder Con Cita
  #4  
Antiguo 14-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por epenor Ver Mensaje
Muy bien Delphi, me refiero a la funcion SysErrorMessageParam(ErrorCode: Integer; Param: string): string; del programa de facturacion de caral.

Segun he visto en el codigo esa funcion captura los errores que puede cometer la persona que opera el sistema y asi evita que la aplicacion "explote". Por ejemplo, si se deja algun Edit vacio que sea not null en la DB y se intenta guardarlo.

No veo ningun procedimiento desde donde se llame la funcion, pero si se refleja su funcionamiento, asi que quieria saber si esa funcion puede ser usada en una aplicacion similar a la de caral, porque me parece una funcion un tangto "generica" (no sé si es el termino correcto) porque no tiene refencias de otras partes del codigo de la aplicacion.

Está dicha funcion enlazada de alguna manera con los try...finaly?

Disculpen mi novatada.
Hola epenor, Creo que estás un tanto confundido... el uso del try-finally es una cosa, lo que hacen esas funciones es otra. Creo que el ejemplo de caral demuestra que es lo que hacen.

No te enojes pero creo que estás enfocando mal tu esfuerzo, no le pongas demasiado detalles al aspecto del manejo de errores. Primeramente asegúrate de cumplir con los objetivos primarios:
1. Que el sistema se logre conectar a la base de datos
2. Que realize las funcionalidades necesarias para responder a los requisitos planteados para el sistema.

Después si se lo puede adornar.

Si sigues analizando aspectos que poco estén relacionados con el verdadero propósito perderás tiempo y además conseguirás únicamente tener una ensalada en el cerebro.

Haz caso a lo que te hemos aconsejado: plantea tus dudas y avances. ¿De que otro modo podremos asesorarte si no nos describes tu situación con los detalles adecuados?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 16-09-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile ¡Y díganmelo a mí!

Bueno, ya hace ya algún tiempo hice un programa de ventas, mira como funciona:
  • Agregar registros es agregar asientos a la tabla.
  • Unas multiplicaciones por ahí (por ejemplo: Cantidad por precio unitario).
  • Sumar la columna de los totales.
  • Imprimir por el Rave Reports.
No puedo enseñarte el código hecho porque es un trabajo privado, y esto que te dije puede ser fácilmente adivinado solo mirando el programa por encimita, pero si buscas todos los hilos que he hecho en este foro, puedes darte cuenta que todos giran alrededor del proyecto. Y sin mucha explicación te guiarás a la perfección, son unos hilos muy completos. Saludos a todos y gracias a quiénes me han ayudado a lo largo de mi vida en este foro.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #6  
Antiguo 19-09-2008
Avatar de DJerez
DJerez DJerez is offline
Miembro
 
Registrado: ago 2008
Posts: 12
Poder: 0
DJerez Va por buen camino
*****

Epenor:
Si te interesa una guia de novato respecto a lo que querés hacer te recomiendo que aunque o tengas tiempo, te des una mirada a otros post referidos a cada aspecto que va a tener el programa.

Hace un tiempito me sucedió lo mismo, Delphius me dió una guía junto con Caral (Naty???) si bien terminé un poco excedido de tiempo el trabajo, me di cuenta que si sos un poco ordenado ni siquiera es necesario bajarte nada desde el FTP.

Si te interesa te puedo pasar parte de lo que terminé haciendo en Delphi7, es un control de stock y ventas. Quizás te sirva de guía. daniel.e.jerez@gmail.com Correo+MSN.

Abrazo a todos.

PD: Espero no moleste mi comment al resto de la gente.

__________________
"Cada minuto que pasa es una oportunidad más para cambiarlo todo."
Responder Con Cita
  #7  
Antiguo 21-09-2008
epenor epenor is offline
Miembro
 
Registrado: jul 2008
Posts: 22
Poder: 0
epenor Va por buen camino
Gracias a todos por sus sugerencias y consejos, he estado corto de tiempo y no he podido hacer casi nada con el proyecto, por eso hacia dias que no escribia. Desde mañana comenzaré a trabajar y plantear mis dudas.

Saludos a todos.
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
Estadisticas de Ventas CoCaInE Varios 5 04-01-2007 13:56:25
Distribución de ventas mensual DarkDudae Varios 0 31-08-2006 14:30:14
Contar ventas. Producto77 SQL 5 20-07-2006 19:51:56
Un 25% de las ventas de Dell son en Linux Casimiro Notevi Noticias 1 09-06-2006 10:31:02
Ventas de PC con Linux. REHome Linux 4 03-05-2004 15:52:23


La franja horaria es GMT +2. Ahora son las 23:28:18.


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