2010-03-24 6 views

Répondre

2

La valeur de retour pour la connexion réussie aura la tête SQLConnection (dans le contexte DatabaseLink)

Plus généralement:

OpenSQLConnection retours $Failed lorsque la connexion a échoué pour une raison quelconque:

In[25]:= OpenSQLConnection[JDBC["mysql", "localhost:3306/foo"], 
    "Username" -> "foo", "Password" -> "bar"] 

During evaluation of In[25]:= JDBC::error: Access denied for user 'foo'@'localhost' (using password: YES) >> 

Out[25]= $Failed 

... et quand ses arguments non évalués ne sont pas de la bonne forme:

In[28]:= OpenSQLConnection[Sin[x]] 

Out[28]= OpenSQLConnection[Sin[x]] 

Par conséquent, vous pouvez rechercher une valeur de retour de $Failed et éventuellement utiliser également Check[...] pour intercepter et gérer les messages ont été générés. Comme vous l'avez deviné, vous pouvez utiliser Head[returnvalue] pour vous assurer que l'en-tête de la valeur de retour n'est pas égal à OpenSQLConnection.

2

Ce n'est pas exactement une réponse à votre question, mais est ce que je fais pour se connecter de manière fiable à ma base de données:

Needs["DatabaseLink`"]; 

CloseSQLConnection[conn]; 

TimeConstrained[ 
    conn=OpenSQLConnection[ JDBC["mysql","localhost:3306/mydb"], 
          "Username"->"myuser", 
          "Password"->"mypw"], 
    5, 
    CloseSQLConnection[conn]; 
    conn=OpenSQLConnection[ JDBC["mysql","localhost:3306/mydb"], 
          "Username"->"myuser", 
          "Password"->"mypw"] 
]; 
Questions connexes