Zurück   Flashforum > Flash und Server > Flash Remoting

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2011, 10:24   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Kann keine Daten in die DB schreiben

Hallo zusammen.

Ich steh grad tierisch auf dem Schlauch weil ich einfach nicht weiß woran es liegen kann, dass ich keine Daten in die Datenbank schreiben kann.
Wenn ich einen Dienstaufruf count oder getAllProdukt generiere bekomme ich die entsprechenden Werte zurückgegeben.
Wenn ich allerdings einen Dienstaufruf für create erstelle bekomm ich keine Rückmeldung. Werder ein Result noch ein Fehler. Und in der Datenbank wird auch nichts hinzugefügt.

Ich habe leider keine Idee woran es liegen könnte.

Anbei mal der Aufruf des Dienstes:

PHP-Code:
public function basisplatteZuweisen():void
        
{
                    
    
basisplatte = new Produkt_basisplatte();
    
basisplatte.bearbeiter "ich";
                
    
// Daten in die Datenbank schreiben
    
createProdukt_basisplatte(basisplatte);
    }

protected function 
createProdukt_basisplatte(item:Produkt_basisplatte):void
    
{
        
createProdukt_basisplatteResult.token produktbasisplatteService.createProdukt_basisplatte(item);
    }
            
protected function 
onResultSpeichern(event:ResultEvent):void
    
{
        
// TODO Auto-generated method stub
        
trace(event.result);
    }
            
protected function 
onFaultSpeichern(event:FaultEvent):void
    
{
        
// TODO Auto-generated method stub
        
trace(event.message);
    } 
Und der MXML Teil
PHP-Code:
<produktbasisplatteservice:ProduktbasisplatteService id="produktbasisplatteService"
                                                         
fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                                                         
showBusyCursor="true"/>
    <
mx:CallResponder id="createProdukt_basisplatteResult" result="onResultSpeichern(event)" fault="onFaultSpeichern(event)"/> 
Alle Klassen und Dienstaufrufe wurden von Flash Builder 4.5 erzeugt. Lediglich den Pfad zur Gateway.php musste ich manuell anpassen.

Das valueObjekt "basisplatte" beinhaltet normalerweise noch weitere Parameter die ich im Beispiel oben jetzt nicht aufgeführt habe. Diese sind aber 1:1 wie die Daten aus "Methode testen" (die funktioniert).

Muss ich das valueObject anders definieren? Wie kann ich herrausfinden woran das Problem liegt?

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 11-08-2011, 10:29   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Hast du mal die Serverscripte debuggt?
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2011, 11:12   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Hallo Omega Psi.

Ich habe gerade mal die Skripte geprüft. Scheint alles zu stimmen. Was mich allerdings wundert: Beim Aufruf der create-Funktion findet keine aktivität bei der Netzwerküberwachung statt?! Bei Count und getAll gibt es eine Anfrage und eine Antwort.

Sehr merkwürdig das Ganze

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 16-08-2011, 15:11   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
So, habe endlich wieder etwas Zeit gefunden weiter der Sache auf den Grund zu gehen. Allerdings finde ich das Problem einfach nicht.

Wenn ich in einer PHP-Test-Datei eine Klasse mit den gleichen Werten erstelle wie in FB4.5 und damit die Funktion aufrufe wird es einwandfrei in die Datenbank geschrieben.

Die Methoden für Count und getAll funktionieren doch auch ohne Probleme?! Warum gibt dann die create-Funktion weder ein fault- noch ein result-Event zurück?

Ich habe mal ein Beispiel-Projekt erstellt für das Hinzufügen eines Benutzers. Alles mit den Standard-Datendienstfunktionen von FB4.5.
Nur der Endpoint der gateway.php habe ich in der Klasse UsersService.as mit dem absoluten Pfad ersetzt (http://localhost/.../gateway.php). Da count und co funktioniert sollte es daran ja nicht liegen?!

Hier mal der Code (wobei er wie gesagt vollautomatisch erzeugt wurde)
PHP-Code:
<?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"
               xmlns:valueObjects="valueObjects.*"
               xmlns:usersservice="services.usersservice.*"
               minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.events.ResultEvent;
            
            
            protected function button_clickHandler(event:MouseEvent):void
            {
                var users2:Users = new Users();
                users2.id = parseInt(idTextInput.text);
                users2.name = nameTextInput.text;
                users2.benutzername = benutzernameTextInput.text;
                users2.psw = pswTextInput.text;
                users2.email = emailTextInput.text;
                
                createUsersResult.token = usersService.createUsers(users2);
            }
            
            protected function onResult(event:ResultEvent):void
            {
                // TODO Auto-generated method stub
                trace("Erfolg: "+event.result);
            }
            
        ]]>
    </fx:Script>
    <fx:Declarations>
        <valueObjects:Users id="users"/>
        <usersservice:UsersService id="usersService"
                                   fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                                   showBusyCursor="true" result="onResult(event)"/>
        <s:CallResponder id="createUsersResult"/>
        
        <!-- Platzieren Sie nichtvisuelle Elemente (z.*B. Dienste, Wertobjekte) hier -->
    </fx:Declarations>
    <s:Form defaultButton="{button}">
        <s:FormItem label="Id">
            <s:TextInput id="idTextInput" text="{users.id}"/>
        </s:FormItem>
        <s:FormItem label="Name">
            <s:TextInput id="nameTextInput" text="{users.name}"/>
        </s:FormItem>
        <s:FormItem label="Benutzername">
            <s:TextInput id="benutzernameTextInput" text="{users.benutzername}"/>
        </s:FormItem>
        <s:FormItem label="Psw">
            <s:TextInput id="pswTextInput" text="{users.psw}"/>
        </s:FormItem>
        <s:FormItem label="Email">
            <s:TextInput id="emailTextInput" text="{users.email}"/>
        </s:FormItem>
        <s:Button id="button" label="CreateUsers" click="button_clickHandler(event)"/>
    </s:Form>
</s:Application>
Wäre super wenn mir jemand weiterhelfen könnte den Fehler ausfindig zu machen um ihn dann beheben zu können.

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 18-08-2011, 13:34   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Was sagt das Netzwerk? Hast du mal einen Proxy im Betrieb benutzt und nicht nur die Scripte angeschaut.

Der Code hilft nicht viel ...
Omega Psi ist offline   Mit Zitat antworten
Alt 18-08-2011, 14:41   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Was sagt das Netzwerk? Hast du mal einen Proxy im Betrieb benutzt und nicht nur die Scripte angeschaut.

Der Code hilft nicht viel ...
Hallo Omega Psi.
Ich weiß leider nicht was du mit dem Proxy meinst. Ich habe bisher die Netzwerküberwachung vom FB4.5 und die Netzwerkaktivitäten im Firebug beobachtet.
Ich habe mir extra eine Schaltfläche für die count()-Funktion gemacht um zu prüfen was das Netzwerk sagt wenn ich den Befehl ausführe (der ja funktioniert).

Sowohl im FB4.5 sowie im Firebug werden nur bei count() Netzwerkaktivitäten angezeigt. Der Aufruf von createUsers() bleibt bei beiden ohne Auswirkung.

Ich habe gerade mal die deleteUsers-Funktion getestet um zu sehen ob da etwas ungewöhnliches passiert:
Zitat:
Hauptthread(Unterbrochen: ArgumentError: Attempt to use managed delete method with an item that is not managed on this client: usersRPCDataManager.(Object)#0)
mx.data::ManagedOperation/deleteItemProxy
mx.rpc.remoting::Operation/send
_Super_UsersService/deleteUsers
amfTest/button2_clickHandler
amfTest/__button2_click
Der gleiche Fehler kommt auch bei updateUsers.

Es ist doch zum verzweifeln

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 18-08-2011, 17:44   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Aber dir muss schon klar sein, dass man vor hier aus keinen blassen Schimmer haben kann, was in
Code:
usersService.createUsers(users2)
passiert. Wieso debuggst du den Code nicht?
Omega Psi ist offline   Mit Zitat antworten
Alt 23-08-2011, 07:04   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Aber dir muss schon klar sein, dass man vor hier aus keinen blassen Schimmer haben kann, was in
Code:
usersService.createUsers(users2)
passiert. Wieso debuggst du den Code nicht?
Hallo Omega Psi.

Ich habe den Code debuggt. Mir ist allerdings nichts aufgefallen und er hat auch nichts gemeckert.

Der Code ist komplett durch FB4.5 generiert worden. Daher bin ich davon ausgegangen, dass das Programm es schon richtig tut

Ich habe denn inzwischen die Lösung dank dieses Blogeintrags gefunden:
Man muss bei "Datenverwaltung aktivieren" die Datendienstmethode für "Create (Add) Children" auf "Keine" stellen. Dann funktioniert es Einträge zu erzeugen. Warum man das machen muss ist mir leider (noch) nicht so klar. Ich hoffe nur, dass es so in Zukunft auch klappt

Und danke nochmal für deine Bemühungen Omega Psi

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DB-Daten in XML schreiben Mach!N3 Flash und Datenbanken 37 26-04-2007 14:40
Daten in XML schreiben _crypto_ Flash Einsteiger 8 05-09-2006 08:08
Daten per PHP in XML schreiben Alpha.ONE Server-Seite allgemein 15 23-01-2006 20:23
Kann keine Klammern ([] + {}) mehr schreiben Flashchaot ActionScript 1 1 25-07-2002 22:45
Flash kann keine Daten mehr importieren???? BadBird ActionScript 1 2 21-08-2001 14:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele