Entra

View Full Version : [php] Connessione a SQL Server con DSN e sensa


race2
13-11-2002, 17:47
Come posso fare per connttere ad un Database SQL Server con PHP , il quale si troova in "REMOTO", in un altra macchina ma in rete "LAN" ???

questo funziona ma in "LOCALE" e mi da un errore per eseguire le Query:
Errore:

Warning: MS SQL message: Impossibile inviare ai client dati Unicode di regole di confronto solo Unicode o dati di tipo ntext tramite DB-Library, ad esempio ISQL, o ODBC 3.7 o versione precedente.




<?
$db_host = "STEFANO";
$db_user = "sa";
$db_pass = "";
$database = "Northwind";

$conn = @mssql_connect($db_host,$db_user,$db_pass) or die("Non riesco a connettermi al Server ");

mssql_select_db($database, $conn) or die("Non riesco a selezionare il database $database$db_host<br>");

$comm = mssql_query("SELECT * FROM Categories",$conn);
while($read = mssql_fetch_array($comm))
{
echo $read["CategoryName"];
}



mssql_close($conn);

?>

oppure ho provato in "REMOTO" creando un DSN di Sistema = "MyStefano"


$db = odbc_connect("MyStefano","","");



mi da il seguente errore:

Warning: SQL error: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato., SQL state IM002 in SQLConnect.

cionci
13-11-2002, 18:17
Hai provato con la connessione con DSN temporaneo ?

"Driver={SQL Server};Server=MyServerName;Trusted_Connection=no;"
"Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;";

Altrimenti prova come stringa di connessione :

"DSN=MyStefano;"

race2
13-11-2002, 18:43
Quasto mi funziona in tutto, tranne che per connettermi in remoto, e io voglio proprio quello, cosa devo aggiungere ???


<?
$sql="SELECT * FROM Orders";

if($conn = odbc_connect("MyStefano", "", ""))
{

if($result = odbc_do($conn, $sql))
{
odbc_result_all($result);
odbc_free_result($result);
}else{
echo "Non riesco ad eseguire la Query <b>$sql</b>";
}

odbc_close($conn);

}else{echo"<br>Non riesco a connettermi al DSN.";}
?>

cionci
14-11-2002, 07:39
Cioè ? Il codice ti funziona bene se il database DSN è in locale, mentre non ti funziona se il DSN è in remoto ?

In questo caso prova ad usare la prima stringa di connessione opportunamente modificata...

race2
14-11-2002, 10:23
Originariamente inviato da cionci
[B]Cioè ? Il codice ti funziona bene se il database DSN è in locale, mentre non ti funziona se il DSN è in remoto ?

In questo caso prova ad usare la prima stringa di connessione opportunamente modificata...

eccoci........!!!

e' questo che volevo sapere come posso fare per inserire il percorso dove si trova il "Server Database" nella stringa di connessione ???

cionci
14-11-2002, 12:24
Con questa stringa : "Driver={SQL Server};Server=MyServerName;Trusted_Connection=no;Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;"

race2
14-11-2002, 13:38
Ma con PHP non funziona...!!!

ho risolto con un DSN......

cionci
14-11-2002, 15:12
Originariamente inviato da race2
[B]ho risolto con un DSN......
Non aveva già messo l'indirizzo del server nel DSN ?

race2
14-11-2002, 17:44
Ho creato un DSN di Sistema allacciando il Database Remoto....

e poi......


<?
$sql="SELECT * FROM Products";

if($conn = odbc_connect("DSN_PC_STEFANO", "sa", ""))
{

if($result = odbc_do($conn, $sql))
{
odbc_result_all($result);
odbc_free_result($result);
}else{
echo "Non riesco ad eseguire la Query <b>$sql</b>";
}

odbc_close($conn);

}else{echo"<br>Non riesco a connettermi al DSN.";}
?>

cionci
14-11-2002, 19:09
Originariamente inviato da race2
[B]Ho creato un DSN di Sistema allacciando il Database Remoto....

e poi......
Appunto, ma credevo che tu avessi già provato questa strada...che la più immediata...

In ogni caso probabilmente funzionava anche con mssql_connect($db_host,$db_user,$db_pass) mettendo in $db_host l'indirizzo ip che ha MS SQL Server...

race2
15-11-2002, 09:45
Che pivello che sono,

FUNZIONA...!!!!!

...ma perche non penso prima di chiedere...??? :rolleyes::rolleyes::rolleyes:

cionci
15-11-2002, 09:47
Eheheheh :D ;)

AdEGoD
02-06-2007, 14:57
Ragazzi scusate, anke io ho lo stesso problema. Non in cosa devo realizzare ma ho lo stesso warning ke mi risulta topo una join enorme.
La sintassi l'ho controllata più volte ed è corretta, ma mi restituisce questo warning:

Warning: mssql_query(): message: Impossibile inviare ai client dati Unicode di regole di confronto solo Unicode o dati di tipo ntext tramite DB-Library, ad esempio ISQL, o ODBC 3.7 o versione precedente. (severity 16) in c:\programmi\easyphp1-8\www\login_prova\include.php on line 36

sapete a cosa è causato??...

AdEGoD
02-06-2007, 15:14
Ho individuato il problema.
Ho un campo descrizione che ha come tipo di dato ntext.
è questo ke mi da dei problemi...sapete mica come lo posso interrogare??..