Comunidad de diseño web y desarrollo en internet online

No carga datos en datagrid

Citar            
MensajeEscrito el 30 Dic 2010 11:21 am
Hola, estoy empezando a trabajar en flex y estoy intentando que me muestre los datos de una Base de datos pero no me los carga, sino que directamente se queda el datagrid en blanco y no me da ningun error ni nada.aqui os dejo el código en flash builder 4 aver si podeis echarme una mano.muchas gracias de antemano.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" backgroundColor="#A6A3A3"
creationComplete="onInit()" xmlns:procuradorservice="services.procuradorservice.*" xmlns:procuradorservice1="services.procuradorservice1.*">

<fx:Style source="Proyecto.css"/>
<fx:Declarations>
<s:CallResponder id="getAllProcuradorResult"/>
<procuradorservice:ProcuradorService id="procuradorService1" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<s:RemoteObject id="miservicio" destination="ProcuradorService1" source="ProcuradorService1" showBusyCursor="true" endpoint="H:\XAMPP 1.7.3\xampp\htdocs\xampp\Proyecto-debug\gateway.php">
<s:method name="getAllProcurador" result="onResult();">
</s:method>
</s:RemoteObject>
</fx:Declarations>

<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.IList;
import mx.controls.Alert;
import mx.core.IUIComponent;
import mx.rpc.http.HTTPService;

private var datos:ArrayCollection;

[Bindable]

private var datos2:Array;

private function onInit():void
{
miservicio.getAllProcurador.send();
}

private function onResult():void
{
datos=miservicio.getAllProcurador.lastResult;
datos2=datos.source;
}

]]>
</fx:Script>

<mx:DataGrid x="218" y="282" dataProvider="{datos2}">
<mx:columns>
<mx:DataGridColumn headerText="nombre" dataField="nombre"/>
<mx:DataGridColumn headerText="apellidos" dataField="apellidos"/>
<mx:DataGridColumn headerText="email" dataField="email"/>
</mx:columns>
</mx:DataGrid>
</s:Application>

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 31 Dic 2010 12:49 pm
Para que Remoting funcione tienes que dar una ruta al servidor, no un directorio local, y luego visualizarlo desde el navegador (via localhost) o desde Flash mismo si usas ruta absoluta. Así el endpoint no puede ser:

H:\XAMPP 1.7.3\xampp\htdocs\xampp\Proyecto-debug\gateway.php

Sino algo así

http://localhost/Proyecto-debug/gateway.php

Incluso si usas el gateway en cualquier lado puede que estes usando una versión vieja de amfphp, ya que la última versión la usa desde la carpeta amfphp

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Ene 2011 10:26 am
Muchas gracias por la respuesta, pero he estado intentando utilizarlo como dices pero no hay manera y no se porque. he probado varias rutas e incluso con alguna consigo que mientras sale el datagrid, me salga el relojito como si estuviera intentando coger los datos pero nada, al final no hace nada.

puede ser cosa del programa o versiones??.que programa de manejo de bases de datos en local me recomendais que sepais que es el que mejor va??

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 10 Ene 2011 11:09 am
¿Que ruta le estás poniendo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Ene 2011 03:04 pm
He probado con estas y alguna mas pero nada no hay manera.lo máximo que consigo con alguna de ellas es que el relojito de espera se quede ahi funcionando pero al final no muestra nada :s

http://localhost/xampp/Proyecto-debug/gateway.php
http://localhost/xampp/Proyecto-debug/services/ProcuradorService.php
http://localhost/xampp/htdocs/xampp/Proyecto-debug/gateway.php
http://localhost/xampp/htdocs/xampp/Proyecto-debug/services/ProcuradorService.php
http://localhost/xampp/

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 10 Ene 2011 03:17 pm
Ahora ponte Charles ( http://www.charlesproxy.com ) y mira que es lo que está pidiendo Flash (tienes que abrirlo desde localhost) Charles es básicamente un monitor de tráfico http que además te muestra todo el tráfico de Remoting.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ene 2011 09:39 am
creo que lo que le pasa es que no establece conexión con la base de datos porque cuando hago un test conection de alguno de los metodos del servicio, me sale un error como este:

InvocationTargetException:There was an error while invoking the operation. Check your operation inputs or server code and try invoking the operation again.

Reason:
Warning: mysqli_connect() expects parameter 5 to be long, string given in H:\XAMPP 1.7.3\xampp\htdocs\xampp\Proyecto-debug\services\ProcuradorService.php

Alguna idea de como conseguir que funcione???muchas gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 11 Ene 2011 11:07 am
Parece que el 5 parámetro que le pasas a mysqli_connect es un string y debiera ser un número

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Ene 2011 10:14 am
me da ahora despues de toquetear cosas este mensaje cuando carga el datagrid, como puedo solucionarlo??

Channel disconnected
Channel disconnected before an acknowledgement was received

muchas gracias!!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 14 Ene 2011 10:38 am
<?php
class ProcuradorService {

var $username = "root";
var $password = "";
var $server = "localhost";
var $port = "";
var $databasename = "procuradores";
var $tablename = "procurador";

var $connection;

public function __construct() {
$this->connection = mysqli_connect(
$this->server,
$this->username,
$this->password,
$this->databasename,
$this->port
);

$this->throwExceptionOnError($this->connection);
}

public function getAllProcurador() {

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename");
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

$rows = array();

mysqli_stmt_bind_result($stmt, $row->nombre, $row->apellidos, $row->provincia, $row->comision, $row->cargo, $row->grupo, $row->observaciones, $row->foto, $row->id_procurador, $row->email);

while (mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->nombre, $row->apellidos, $row->provincia, $row->comision, $row->cargo, $row->grupo, $row->observaciones, $row->foto, $row->id_procurador, $row->email);
}

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);

return $rows;
}

public function getProcuradorByID($itemID) {

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename where id_procurador=?");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 'i', $itemID);
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

mysqli_stmt_bind_result($stmt, $row->nombre, $row->apellidos, $row->provincia, $row->comision, $row->cargo, $row->grupo, $row->observaciones, $row->foto, $row->id_procurador, $row->email);

if(mysqli_stmt_fetch($stmt)) {
return $row;
} else {
return null;
}
}

public function createProcurador($item) {

$stmt = mysqli_prepare($this->connection, "INSERT INTO $this->tablename (nombre, apellidos, provincia, comision, cargo, grupo, observaciones, foto, email) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 'sssssssss', $item->nombre, $item->apellidos, $item->provincia, $item->comision, $item->cargo, $item->grupo, $item->observaciones, $item->foto, $item->email);
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

$autoid = mysqli_stmt_insert_id($stmt);

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);

return $autoid;
}

public function updateProcurador($item) {

$stmt = mysqli_prepare($this->connection, "UPDATE $this->tablename SET nombre=?, apellidos=?, provincia=?, comision=?, cargo=?, grupo=?, observaciones=?, foto=?, email=? WHERE id_procurador=?");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 'sssssssssi', $item->nombre, $item->apellidos, $item->provincia, $item->comision, $item->cargo, $item->grupo, $item->observaciones, $item->foto, $item->email, $item->id_procurador);
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
}

public function deleteProcurador($itemID) {

$stmt = mysqli_prepare($this->connection, "DELETE FROM $this->tablename WHERE id_procurador = ?");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 'i', $itemID);
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
}

public function count() {
$stmt = mysqli_prepare($this->connection, "SELECT COUNT(*) AS COUNT FROM $this->tablename");
$this->throwExceptionOnError();

mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

mysqli_stmt_bind_result($stmt, $rec_count);
$this->throwExceptionOnError();

mysqli_stmt_fetch($stmt);
$this->throwExceptionOnError();

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);

return $rec_count;
}

public function getProcurador_paged($startIndex, $numItems) {

$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename LIMIT ?, ?");
$this->throwExceptionOnError();

mysqli_stmt_bind_param($stmt, 'ii', $startIndex, $numItems);
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();

$rows = array();

mysqli_stmt_bind_result($stmt, $row->nombre, $row->apellidos, $row->provincia, $row->comision, $row->cargo, $row->grupo, $row->observaciones, $row->foto, $row->id_procurador, $row->email);

while (mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->nombre, $row->apellidos, $row->provincia, $row->comision, $row->cargo, $row->grupo, $row->observaciones, $row->foto, $row->id_procurador, $row->email);
}

mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);

return $rows;
}

private function throwExceptionOnError($link = null) {
if($link == null) {
$link = $this->connection;
}
if(mysqli_error($link)) {
$msg = mysqli_errno($link) . ": " . mysqli_error($link);
throw new Exception('MySQL Error - '. $msg);
}
}
}

?>

Por si ayuda aquí esta el codigo de ProcuradorService.php

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 14 Ene 2011 11:13 am
Tip: instala un proxy http que te muestre el tráfico AMF, te recomiendo http://www.charlesproxy.com, así podrás ver la info que va y viene

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Ene 2011 01:00 pm
ya lo he instalado y tal y me sale algo asi:

AMF Message Message
Header
Body
[0] Body Part
Target String /2/onStatus
Response String null
Content Object flex.messaging.messages.ErrorMessage
correlationId String 6B63FCAB-119B-17E9-C59F-8491C227BC9B
faultCode String AMFPHP_FILE_NOT_FOUND
faultDetail String H:\XAMPP 1.7.3\xampp\htdocs\amfphp\core\shared\app\BasicActions.php on line 33
faultString String The class {ProcuradorService} could not be found under the class path {H:\XAMPP 1.7.3\xampp\htdocs\amfphp\services/datosgrid-debug/ProcuradorService.php}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 14 Ene 2011 02:49 pm
Supongo que lo estas corriendo desde Localhost, mira que la clase esté en la carpeta services, si vas al service browser (está en la carpeta browser, es una aplicación en Flex) te tiene que mostrar el servicio y sus métodos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Feb 2011 06:58 pm
Ya consegui que me funcionase, el problema era que al crear el servicio, el campo de puerto lo dejaba en blanco pensando que así funcionaria y despues de probar y todo, añadí al crear al servicio el puerto 3306 y voilá ya funcionó. Muchas gracias por la ayuda Jorge

Alvaro

Por SURFER_SANTO

6 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.