Witam wszystkich, to jest mój mały kod Frankensteina, nie żartujcie z tego, to działa! Przekazywałbyś więc nazwę tabeli i dane jako tablicę asocjacyjną, które są obiektami. Jestem prawie pewien, że to nie jest dobry kod, tak jak byłem i nadal uczę się ActionScript. Więc co mogę zmienić lub jak moglibyście zrobić to lepiej?Jak mogę poprawić mój kod AS3/Air?
public function save(table:String,data:Object):void
{
var conn:SQLConnection = new SQLConnection();
var folder:File = File.applicationStorageDirectory;
var dbFile:File = folder.resolvePath("task.db");
conn.open(dbFile);
var stat:SQLStatement=new SQLStatement();
stat.sqlConnection=conn;
//make fields and values
var fields:String="";
var values:String="";
for(var sRole:String in data)
{
fields=fields+sRole+",:";
stat.parameters[":"+sRole]=data[sRole];
}
//trim off white space
var s:String=new String(fields);
var cleanString:String=s.slice(0, -2);
//over here we add : infront of the values I forget why
var find:RegExp=/:/g;
var mymyField:String=new String(cleanString.replace(find,""));
cleanString=":"+cleanString;
var SQLFields:String=mymyField;
var SQLValues:String=cleanString;
stat.text="INSERT INTO "+table+" ("+SQLFields+")VALUES("+SQLValues+")";
stat.execute();
}
Zgodziłbym się z tym pierwszym stwierdzeniem, o ile zasoby systemu nie są nadużywane. Pamięć, zwłaszcza w pamięci flash przeglądarki, powinna być zawsze zarządzana poprawnie. – TheDarkIn1978
+1. chociaż kod jest naprawdę tak okropny, że nie powiedziałbym, że faktycznie "działa" jak kod. – back2dos