2012-04-04 2 views
0

Ich habe einen seltsamen Fehler, der kommt, wenn meine Datenbankverbindung hergestellt wird und dann diesen Fehler bei der Ausführung e=fetch(e), dass Undefined function or method 'fetch' for input arguments of type 'struct'. Ich rufe eine andere Funktion auf den extrahierten DatenMatlab-Datenbankverbindung: Undefinierte Funktion oder Methode 'fetch' für Eingabeargumente vom Typ 'struct'

Function loadlib(Pin,con_sem) 
load(Pin,con_sem); 
end 

Aber jetzt zu manipulieren, wenn ich die Verbindung Befehl getrennt m-Datei wie diese

clear; 
con_sem = database('OptProgramSemiLib','root','*********'); 
e=exec(con_sem,['SELECT *FROM Cond WHERE Type LIKE ''MO'' ']); (here it gives message in debug mode' invalid or closed connection) 
e=fetch(e); 
e.Data 
close(con_sem); 

dann laufen tut es gibt mir diesen Fehler. Ich hatte auch dieses Problem, als ich versuchte, Datenbank von einem anderen Konto (mit Administratorrechten) zuzugreifen. Alle Einstellungen bitte. Wo ich falsch liege.

+0

Wir benötigen mehr Informationen darüber, welche Anrufe getätigt werden, wenn es fehlschlägt. Es ist weniger hilfreich, den Nachfolger zu zeigen ... – tmpearce

+0

loadlib-Funktion wird aufgerufen, die dann load (Pin, con_sem) aufruft, um die Daten aus der Datenbank zu übergeben. Mit der Debug-Option geht es bis zum fetch-Befehl, danach gibt es einen Fehler. es gibt diese msg im Debug-Modus 'Ungültige oder enge Verbindung' – mirage

+0

Ist 'load' die Standard-Matlab-Funktion, die Daten aus einer Matdatei lädt? – tmpearce

Antwort

1

Verbindungsobjekt kann nicht geladen werden. Wenn Sie nach dem Herstellen der Verbindung die Verbindung oder die MATLAB-Sitzung schließen, geht die Verbindung zur Datenbank verloren. Sie müssen sich erneut mit der Datenbank verbinden.

Speichern Sie m-Datei mit einem Skript oder einer Funktion, um eine Verbindung herzustellen. Sie können immer überprüfen, ob das Verbindungsobjekt mit ISCONNECTION Funktion gültig ist.

Siehe auch meine Antwort und eine Follow-up-Kommentar zu another similar question.