FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿alguien sabe hacer esto? (conexion a mySQL desde delphi pero sin acceso...)
Hola !
gracias por leer este mensaje, voy a explicarte: Tengo un espacio web que dispone de una base de datos en MySQL, el problema es que solo puedo acceder a ella via localhost, es decir (yo me entiendo asi) via programa php, asp etc... pero no via desktop o desde una aplicacion en delphi. ahora bien: ¿podria acceder enviando las consultas como si fuera una aplicacion localhost y recuperar los resultados de alguna forma? (aunque tuviera cortar y pegar trozos de texto por ejemplo). A mi se me habia ocurrido, crear un programa php desde delphi, copiarlo por ftp al servidor, ejecutarlo y que deje el resultado de la consulta como un archivo en el ftp. pero eso me parece muy chapuzas, a parte de que tendria que abrir el explorer (oculto si se puede) para ejecutar el php. igual hay formas profesionales de hacer eso, si sabes como y me lo puedes explicar claramente, me seria de ayuda. Saludos : ) gracias x tu interes. |
#2
|
|||
|
|||
Podrias hacer un script en php que reciba como argumento la sentencia SQL, y que devuelva el resultado poniendo delimitadores entre los distintos campos y luego separarlos, pero es una solucion chapuzera :P
|
#3
|
||||
|
||||
Yo lo hago con los objetos "ZEOS" y funcionan de maravilla (Delphi-7 y Kilix) tanto en Window$ XP como en Linux.
Creo una Consulta (con el ZQuery, conectado a un ZConnection) en tiempo de ejecución y la lanzo sin problemas (ahora, que al principio las pasé "canutas" por no darme cuenta de crear los usuarios y darlos derechos y todo eso) Esta ha sido la última, gracias a Sirkius Lo del "DEBUG" es para que me escriba la SQL al disco (por si hay problemas) Saludos |
#4
|
||||
|
||||
Cita:
// Saludos Última edición por roman fecha: 24-08-2004 a las 23:05:32. Razón: Me equivoqué al citar a un usuario |
#5
|
||||
|
||||
Cita:
Saludotes |
#6
|
||||
|
||||
Cita:
Otra cosa es que en la definición de derechos puedes especificar comodines de manera que se pueden asignar permisos a un usuario para conectarse desde cualquier IP. Normalmente un proveedor de servicios sólo te dará derechos desde localhost. // Saludos |
#7
|
||||
|
||||
Perdona Román, creo que no me he explicado bién.
Cuando accedo a la BD, el usuario salvica debe estar creado y tener derechos de acceso (inserción, borrado, etc.) a una BD, que es lo único que requiere la conexión de los objetos ZEOS, yo no estoy diciendo que por tener estos objetos voy a entrar por la cara a reventar una BD en la que ni me conocen ni sé como se entra. Siento haberme explicado mal, pero el ejemplo que puse era para indicarle como se hacia una conexión a MySql con Delphi. Chao |
#8
|
||||
|
||||
Cita:
A Zeos no necesitas indicarle nada más de lo que mencionas por que no es Zeos quien se encarga de eso sino el propio servidor de MySql. Cuando lanzas una petición al servidor de MySql, lo primero que éste hace es checar la tabla user y buscar un registro que contenga tu nombre de usuario y la ip desde la que te conectas. Si no aparece dicho registro entonces te deniega el acceso. Claro que pede aparecer una entrada del tipo: (salvica, %) donde % indicaría que puedes conectarte desde cualquier dirección. Pero si la entrada es (salvica, localhost) entonces sólo podrás conectarte desde localhost (y localhost significa la máquina donde está el servidor de MySql) También podría ser (salvica, 200.25.38.92) y en tal caso sólo podrás conectarte desde la ip 200.25.38.92. Si aún no te convenzo, mañana te creo una cuenta aquín en mi pc para que tú mismo veas la diferencia. // Saludos |
#9
|
||||
|
||||
Vale, perdona Román pero el que no habia leido bién era yo
Cita:
Siento la confusión, a la proxima leere más despacio Saludos |
#10
|
|||
|
|||
Me enfrente al mismo dilema, lo que opte fue, como ya se indico mediante un script php colocado en el servidor se reciben las peticiones SQL y el script construye un archivo de salida ASCII delimitado por comas (o cualquier delimitador).
La forma de operar es la siguiente: Se construyo una aplicacion en delphi con el componente NMHTTP1 este genera una solicitud GET al sitio con el script, el script procesa el comando y devuelve el resultado el cual lo obtenemos en la propiedad body del componente. La propiedad body es separada e insertada en un Tclientdataset con lo cual ya nos permite manejarlo con los componentes normales de para bases de datos. Aunque la solucion es muy rudimentaria, el usuario final no percibe diferencia, y la velocidad es excelente. |
#11
|
|||
|
|||
Hola !
graciasa todos por vuestras respuestas. Para AMO: Eso es + - lo que estaba buscando, pero sobre lo que dices no tengo ni idea, podria investigar y supongo que lo conseguiria, pero si no es mucha cara, podrias enviarme un ejemplo de como se haria? (algo simple bastaria luego yo me arreglo). (desconozco si esas peticiones estan permitidas aqui). Es para un proyecto no comercial (un hobby que tengo (con una saga televisiva)). : D www.saracosta.com bueno, lo dicho si puedes enviarme el ejemplo te estaria muy agradecido. (mi direccion seccion31@terra.es ) Saludos a todos. : ) |
#12
|
||||
|
||||
Wop!
Quería comentar dos cosas, en primer lugar, si AMO tiene a bien enviar ese ejemplo, sería de agradecer que lo hiciese aquí, y no por correo. De esta manera, si otro usuario tiene la misma duda, lo podrá ver. Además quería completar la aportación de AMO. Yo he programado muchas veces comunicaciones entre una aplicación Windows y un servidor web, que en el fondo es lo que se quiere hacer. Despues de hacerlo de diversas maneras, creo que la más escalable y mantenible (con una pérdida de velocidad menospreciable) es la técnica expuesta por AMO pero, en lugar de enviar texto plano, enviar un documento xml. Desde Delphi te es igual de fácil de interpretar, pero las posibilidades de xml son mayores. Eso sin tener en cuenta que, por ejemplo, una inserción de un nuevo campo en la primera posición de un CSV te dará mucho más trabajo que si es en xml.
__________________
E pur si muove |
#13
|
|||
|
|||
hola !
(lo de no postear aqui el ejemplo era por si acaso estaba mal visto). Bueno he buscado ese componente y no aparece en delphi 7, ya que parece que la empresa lo distribuyo unicamente para delphi 3, 4 y 5. (ahora lo vende a casi 200$), pero seguro que hay algun otro que lo reemplaza en delphi 7. voy a intentar llegar a algo investigando los componentes que trae D7. Si alguien quiere ayudarme, soy todo oidos. gracias. : ) |
#14
|
||||
|
||||
Wop!
Lo puedes hacer perfectapente con un TIdHttp
__________________
E pur si muove |
#15
|
||||
|
||||
Cita:
// Saludos |
#16
|
||||
|
||||
Cita:
__________________
E pur si muove |
#17
|
||||
|
||||
Cita:
|
#18
|
|||
|
|||
ok, gracias
de momento ya soy capaz de recuperar "una" pagina: esto lo voy poniendo, porque luego enviare un ejemplo completo de como hacerlo ¿vale? (asi los que esten en mi caso no tendremos que ir muy lejos) (objeto Indy IDHttp) s:=IDHTTP1.Get('http://www.saracosta.com/logos.htm'); (casi nada) : D cuando trato de recuperar una que no existe: http:/1.1 404 (osea la pagina no existe) ¿no hay otra forma de detectar que no existe? voy ahora a intentar subir dinamicamente un PHP y que lo ejecute. (eso sera para nota) luego os cuento. (si el moderador cree que no debo seguir asi este hilo que avise ¿eh?) |
#19
|
||||
|
||||
Wop!
Cita:
Solo una cosa, intenta poner el código delphi entre tags [delphi] y el php, [php], sino, a la que la cosa se complique no va a haber quién lo siga
__________________
E pur si muove |
#20
|
|||
|
|||
La siguiente funcion me devuelve:
http/1.0 405 method not allowed Mi duda es, ¿debo registrarme de alguna forma? (como con un servidor ftp dando mi username y password) ¿debo generar las cabeceras http en el documento? Aqui va la funcion que empleo
(prueba.php esta OK, y devuelve una simple cadena 'hola') Código PHP:
Última edición por marto fecha: 26-08-2004 a las 10:08:26. |
|
|
|