Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Base de datos remota IP PUBLICA (https://www.clubdelphi.com/foros/showthread.php?t=94482)

oscarac 29-02-2020 03:38:01

Base de datos remota IP PUBLICA
 
buenas noches

tengo un amigo que tiene una ip publica y dentro tiene una base de datos, hice una prueba usando php
Código PHP:

<?php
$link 
mysqli_connect("IP PUBLICA""usuario""clave"'database');

//var_dump($link);

/* comprobar la conexión */
echo "conectando";
if (
mysqli_connect_errno()) {
    
printf("Falló la conexión: %s\n"mysqli_connect_error());
    exit();
    }

/* Consultas de selección que devuelven un conjunto de resultados */
if ($resultado mysqli_query($link"SELECT * FROM prueba")) {
    
//printf("La selección devolvió %d filas.\n", mysqli_num_rows($resultado));
    //var_dump($resultado);

    /* liberar el conjunto de resultados */
  
foreach($resultado as $p){ ?>
    <tr>
        <td><?=$p['codigo']?></td>
        <td><?=$p['periodo']?></td>
        <td><?=$p['fecha']?></td>
        <td><?=$p['opcion']?></td>
        <br>
    </tr>
    <?php
   

    
//mysqli_free_result($resultado);
}
}


mysqli_close($link);
?>


y me muestra los resultados
eso mismo quisiera hacer en delphi, uso la version xe7

alguien me da una idea de como hacerlo?

mientras seguire investigando

he leido sobre el uso de WebService, pero la pregunta seria como colgar el webservice en la ip publica?

oscarac 29-02-2020 06:34:46

actualizacion

ya logre postear el webservice en la Ip Publica
he creado 2 archivos

wsServidor.php
wsBaseDatos.php


wsServidor
Código PHP:

<?php

include_once('wsBaseDatos.php');
include_once(
'nusoap.php');

$wsBD = new wsBaseDatos;

$servidor= new soap_server;
$servidor->register("ObtenerDatos");
if( !isset(
$HTTP_RAW_POST_DATA)){
    
$HTTP_RAW_POST_DATA file_get_contents("php://input");
}
$servidor->service($HTTP_RAW_POST_DATA);

function 
ObtenerDatos($cod$periodo){
    global 
$wsBD;
    
$sql="select * from prueba where codigo = $cod and periodo = $periodo";
    
$rpta=$wsBD->consultar($sql);
    return 
json_encode($rpta);
    }

?>

wsBaseDatos.php
Código PHP:

<?php

class wsBaseDatos{
    private 
$cnx=null;
    
#==================
    
private function conectar(){
        
$this->cnx=mysqli_connect('IPPUBLICA','usuario','clave','base de datos','puerto');
        
mysqli_query($this->cnx,"set names utf-8");
    }
    
#==================
    
public function consultar($sql){
        
$this->conectar();
        
$rpta=mysqli_query($this->cnx,$sql);
        
        if(
mysqli_num_rows($rpta)>0){
            while(
$f=mysqli_fetch_assoc($rpta)){
                
$salida[]=$f;
            }
        }else{
            
$salida=array();
        }
        
$this->desconectar();
        return 
$salida;
    }
    
#==================
    
function ejecutar($sql){
        
$this->conectar();
        
$exito=mysqli_query($this->cnx,$sql);
        
$this->desconectar();
        if(
$exito==or $exito==true){
            return 
1;
        }else{
            return 
0;
        }
    }
    
#==================
    
private function desconectar(){
        
mysqli_close($this->cnx);
    }
    
#==================
}


?>

ya me funciona via php

pero cuando quiero importar la wsdl en delphi me sale un error que dice


Unable to Load WSDL file/Location http://ippublica/wsServidor.php?wsdl

la verdad no recuerdo mis clases de php como se hacia esto, es decir acceder al web service y q muestre el XML como contenido

alguien me da una mano?

oscarac 29-02-2020 06:53:45

actualizacion


ya me acorde que tenia que registrar las funciones asi

Código PHP:

$server=new soap_server;
$server->configureWSDL("Descripcion WS","urn:informacion_ws01");

$server->register("ObtenerDatos",
                    array(
'cod'=>'xsd:string','periodo'=>'xsd:string'), //entrada
                    
array('return'=>'xsd:string'), //respuesta
                    
'urn:info00'//namespace
                    
'urn:info00#ObtenerDatos'//accion
                    
'rpc'// estilo
                    
'encoded'//uso
                    
'Texto Descriptivo 03'
                    
); 


oscarac 29-02-2020 15:09:38

me guié de este tutorial

https://neftali.clubdelphi.com/35-ge...ice-en-delphi/

la verdad que el tema era mas sencillo de lo que parece, utilice los componentes SOAP

gracias de todas formas por su atencion


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

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