[ascoders] Klassen Fehler

  • From: 1stpixel <1stpixel@xxxxxxxxxxxxxxx>
  • To: "ascoders@xxxxxxxxxxxxx" <ascoders@xxxxxxxxxxxxx>
  • Date: Tue, 27 Apr 2004 21:16:24 +0200

hiho,

ich habe eine mysql klasse von einer statischen Funktion abgeleitet,
welche nicht aber nicht funktionieren will.
Nehme ich folgende Zeilen (AS1), klappt alles hervorragend:

hier erst mal die AS1 Variante:
//----------------------------------------------------------------------
table = "meine_tabelle";
querystr = "SELECT * FROM " + table;
query = function(str) {
        var database = "database";
        var myXML = new XML ();
        // This is required so that the php file gets the data..
        sendXML.contentType = "text/xml";
        sendXML.parseXML ("<gateway><query_db>" + database + "</query_db><query_str><![CDATA[" + str + 
"]]></query_str></gateway>");
        var replyXML = new XML ();
        replyXML.onLoad = function (success) {
                if (success) {
                        response.text = "";
                        response.text = this;
                } else {
                        response.text = "GUI connection failed.";
                }
        };
        sendXML.sendAndLoad ("gateway.php", replyXML);
}
query (querystr );
//----------------------------------------------------------------------
Das funktioniert soweit, ist aber nicht sehr hübsch!
Deshalb dachte ich an eine eigene Klasse:

//----------------------------------------------------------------------
class Database.Mysql {
        /*
        * Class Vars
        */
        private var __database:String;
        private var __gateway:String;
        private var __logFile:String;
        private var __sendXML:XML;
        private var __replyXML:XML;
        // constructor
        function Mysql (gw) {
                arguments.length > 0 ? setGateway (gw) : trace ('Error: Path to 
gateway is missing in constructor');
        };
        /*
        * Getter and Setter for __datatbase
        */
        public function setDatabase (db:String):Void {
                if (db != undefined) {
                        __database = db;
                        __sendXML = new XML();
                        __sendXML.contentType = "text/xml";
                        __replyXML = new XML();
                } else {
                        trace ("Error: ´Database.Mysql.setDatabase()´ requires 1 
Argument: [String]!");
                }
        };
        public function getDatabase ():String {
                return (__database);
        };
        /*
        * Getter and Setter for __gateway
        */
        public function setGateway (path:String):Void {
                if (path != undefined) {
                        __gateway = path;
                }else {
                        trace ("Error: ´Database.Mysql.setGateway()´ requires 1 
Argument: [String]!");
                }
        };
        public function getGateway ():String {
                return (__gateway);
        };
        /*
        * main Function
        */
        public function query(qs:String) {
                if (__database != "" || __database != undefined) {
                        __sendXML.parseXML("<gateway><query_db>"+ __database 
+"</query_db><query_str><![CDATA["+ qs +"]]></query_str></gateway>");
                        __replyXML.onLoad = function (success) {
                                if (success) {
                                        __logFile += this + "\n";
                                        return (this);
                                } else {
                                        __logFile = "mysql connection 
failed.\n\r";
                                        showLog();
                                };
                        };
                        __sendXML.sendAndLoad(__gateway, __replyXML);
                } else {
                        trace ("Error: ´Database.Mysql.query()´: no database or 
table selected (?)");
                }
        };
        /*
        * Custom Debug Functions
        */
        public function showLog():Void {
                trace (__logFile);
        };
        public function getLog():String {
                return (__logFile);
        };
        public function clearLog():Void {
                __logFile = "";
        };
}; // EOC
//----------------------------------------------------------------------
Jetzt versuchen wir es mal auf as2:
import Database.Mysql;
MYSQL = new Mysql ("gateway.php");
MYSQL.setDatabase ("meineDB");
$table = "meineTabelle";
//
$mysql_XML = MYSQL.query ("SELECT * FROM " + $table);
result.text = MYSQL.getLog ();

//----------------------------------------------------------------------
Die Klasse gibt aber keinerlei Reaktionen von sich.

Am gateway.php kanns nicht liegen, das die As1 variante ja funzt.

any ideas ?

1stpixel

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: