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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.022
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.022
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.022
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 11:18:08.


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