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 06-08-2017
jolunavi jolunavi is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 8
Poder: 0
jolunavi Va por buen camino
W1035 Return value of function 'TDataModule1.OpenConnection' might be undefined

por favor alguien me podria decir por que sigue dando este warning?
Código:
[dcc32 Warning] Modulos.pas(102): W1035 Return value of function 'TDataModule1.OpenConnection' might be undefined
Código Delphi [-]
unit Modulos;

interface

uses
  System.SysUtils,
  System.Classes,
  FireDAC.Comp.DataSet,
  FireDAC.Comp.Client,
  FireDAC.DatS,
  FireDAC.DApt.Intf,
  FireDAC.DApt,
  FireDAC.Stan.Param,
  FireDAC.Stan.Def,
  FireDAC.Stan.Intf,
  FireDAC.Stan.Option,
  FireDAC.Stan.Error,
  FireDAC.Stan.Pool,
  FireDAC.Stan.Async,
  FireDAC.UI.Intf,
  FireDAC.Phys.Intf,
  FireDAC.Phys.MySQL,
  FireDAC.Phys.MySQLDef,
  FireDAC.Phys,
  FireDAC.VCLUI.Wait,
  Data.DB,
  FireDAC.Comp.UI;

type
  TDataModule1 = class(TDataModule)
    FDCon_DB:TFDConnection;
    FDQueryUsers:TFDQuery;
    FDPhysMySQLDriverLink1:TFDPhysMySQLDriverLink;
    FDGUIxWaitCursor1:TFDGUIxWaitCursor;
    procedure KonectarMySQL;
    function OpenConnection:Boolean;               ///////////////////////     ESTA DEFINIDO EN ESTA LINEA     ///////////////////////////
    procedure CloseConnection;


  private
    { Private declarations }
  public
    { Public declarations }

    StringaHostName,StringaDBName,StringaDBUser,StringaDBPass,StringaDBPort:String;
    intUID:integer;
    StringaUsername:String;
    StringaFullName:String;
  end;


var
  DataModule1: TDataModule1;


implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}



procedure TDataModule1.KonectarMySQL;
begin
    FDCon_DB:=TFDConnection.Create(Self);

    try
        FDCon_DB.DriverName:= 'MySQL';
        FDCon_DB.Params.Add('Server='   + StringaHostName );
        FDCon_DB.Params.Add('Database=' + StringaDBName );
        FDCon_DB.Params.Add('UserName=' + StringaDBUser );
        FDCon_DB.Params.Add('Password=' + StringaDBPass );
        FDCon_DB.Params.Add('Port='     + StringaDBPort );

        FDCon_DB.LoginPrompt:= False;
        FDCon_DB.Connected:= True;

        FDQueryUsers:=TFDQuery.Create(Self);
        FDQueryUsers.Connection:=FDCon_DB;

    except
        //
    end;
end;



Function TDataModule1.OpenConnection:Boolean;                    ////////////////       WARNING HERE       ////////////////
///var ConnString:String;
begin
    try
        if FDCon_DB.Connected = True then
            begin
                result :=True;
            end
        else
            begin
                KonectarMySQL;
            end;
    except
        result :=False;
    end;
end;


procedure TDataModule1.CloseConnection;
begin
    FDQueryUsers.Close;
    FDCon_DB.Close;
end;
end.

creo que no deberia hacer caso a esta situacion.
pero es un poco molesto, ya que esta siempre alli.
aparece en la zona de los mensajes.
Código:
[dcc32 Warning] Modulos.pas(102): W1035 Return value of function 'TDataModule1.OpenConnection' might be undefined
Success
Elapsed time: 00:00:00.6
...asi que decidi hacer la pregunta a los profesionales




por otro lado alguien me podria decir que teclas debo pulsar para que el editor haga aparecer la "ventanita de ayuda"? o algun metodo de ayuda de escritura.
yo cierro y vuelvo a abrir para qe el editor me diga los errorres (he googleado pero parece que con "ventanita" ...nada relacionado a delphi )

puedo decir que esta "ventanita" aparece cuando escribo un "."
ejemplo:
TDataModule1.OpenConnection ....junto con una lista de todas las opciones



Muchas Gracias de antemano !!

PS: [usando RAD Studio 10.2 ]
Responder Con Cita
  #2  
Antiguo 06-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Imagina el caso "habitual" en el que FDCon_DB no está conectado, ¿qué ocurriría?
Ocurriría que pasaría el control a KonectarMySQL y luego saldría de la function OpenConnecction sin ningún valor (True/False).
Quizás sería mejor así:
Código Delphi [-]
Function TDataModule1.OpenConnection:Boolean;
begin
  Result:=True;
  try
    if not FDCon_DB.Connected then    
      KonectarMySQL;
  except
    result :=False;
  end;
end;
Responder Con Cita
  #3  
Antiguo 07-08-2017
jolunavi jolunavi is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 8
Poder: 0
jolunavi Va por buen camino
WAW! ...Funcionó !!
Con ese cambio a desaparecido el mensaje de warning qe aparecia siempre!

Muchas gracias Casimiro Notevi
Responder Con Cita
  #4  
Antiguo 07-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo importante es que entiendas el motivo.
Responder Con Cita
  #5  
Antiguo 07-08-2017
jolunavi jolunavi is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 8
Poder: 0
jolunavi Va por buen camino
seria mucha molestia si me lo explicas "...mas lentamente"

Por favor !!
Responder Con Cita
  #6  
Antiguo 07-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
 // Esta función debe devolver un boolean (True/False)
 // Si llamas a esta función y FDCon_DB no está conectada, ¿qué pasos ocurrirían?
 // El valor se devuelve en la variable "Result"
  
 1 Function TDataModule1.OpenConnection:Boolean;    // debe devolver un boolean (true/false)
 2 begin
 3   try    // De momento Result no vale nada porque no le hemos asignado true o false
 4     if FDCon_DB.Connected = True then    // Si no está conectado FDCon_DB pasa al "else"
 5     begin
 6       result :=True;
 7     end
 8     else
 9     begin   // ahora ejecuta esta línea llamando a KonectarMySQL
10       KonectarMySQL;  
11     end;    // Regresa de llamar a KonectarMySQL 
12   except
13     result :=False;
14   end;
15 end;  // y termina.  ¿Qué valor tiene Result?   un valor indefinido, no le hemos asignado ningún valor.
¿Y qué dice el mensaje de aviso?
Cita:
Return value of function 'TDataModule1.OpenConnection' might be undefined
¿Lo entiendes ahora?

Última edición por Casimiro Notevi fecha: 07-08-2017 a las 00:56:35.
Responder Con Cita
  #7  
Antiguo 07-08-2017
jolunavi jolunavi is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 8
Poder: 0
jolunavi Va por buen camino
Muchas Gracias Casimiro Notevi
ahora si entiendo !!
Estaba saliendo de la funcion sin darle ningun valor a OpenConnection.

Gracias de nuevo
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
Fatal error: Call to undefined function ibase_connect() mRoman PHP 7 10-02-2015 11:07:15
Error de undefined index ebanibaldo PHP 5 19-10-2012 03:11:02
Undefined service gds_db/tcp StartKill Firebird e Interbase 7 10-05-2012 01:15:53
Fatal error: Call to undefined function gmp_mod() alquimista_gdl PHP 5 24-09-2008 22:36:53
Return value of function might be undefined momo OOP 5 28-06-2006 00:20:44


La franja horaria es GMT +2. Ahora son las 02:11:09.


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