2014-12-09 3 views
1

Мы переходим на Azure и имеем одно приложение, которое все еще находится в классическом ASP. Мы перенесли базу данных, с которой ей нужно связываться с базой данных SQL в Azure.классическая база данных asp и sql azure

Ищите руководство или примеры того, как получить классический ASP для подключения к базе данных SQL.

Вот что мы имеем сейчас.

ConnString = "DRIVER=SQL Server Native Client 10.0;Server=servername.database.windows.net,1433;Database=azuredb;[email protected]‌ rname;PWD=password;Encrypt=yes;TrustServerCertificate=no;" 

Set Conn = CreateObject("ADODB.Connection") 
Conn.Open ConnString 
set rs=Server.CreateObject("ADODB.recordset") 
SQL = "SELECT * from table" 
rs.Open(SQL) 

Строка соединения (для удобства чтения)

 
SQL Server Native Client 10.0;Server=servername.database.windows.net,1433; 
Database=azuredb;[email protected]‌ rname;PWD=password;Encrypt=yes; 
TrustServerCertificate=no; 

С связи с вышесказанным, мы получаем следующую ошибку

 
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 
[Microsoft][ODBC Driver Manager] 
Data source name not found and no default driver specified 

Мы бежим это в виртуальной машине работает Server2008 R2

+0

Можете ли вы показать строку подключения? (Удалите любую личную информацию, такую ​​как имя пользователя и пароль, хотя). – Lankymart

+0

Было бы лучше, если бы вы отредактировали вопрос, а затем написали код в комментариях, где он неформатирован и его трудно читать. – Lankymart

+0

Эта ошибка подсказывает мне, что у вас нет собственного SQL Server Native Client 10.0, установленного на вашей виртуальной машине, при первом неудаче с Azure это не имеет никакого отношения. – Lankymart

ответ

-1

Вам, скорее всего, понадобится e ODBC для достижения соединения. Подробности можно найти на сайте MSDN: http://msdn.microsoft.com/en-us/library/azure/hh974312.aspx

+0

Да, по какой-то причине, это не нравится подключение. Продолжайте получать это: Microsoft OLE DB Provider для ошибки драйверов ODBC '80004005' [Microsoft] [ODBC Driver Manager] Источник данных не найден и драйвер по умолчанию не указано – user3317155

+0

Они используют ODBC - см [SQL Server Native Client 10.0 ODBC - Стандартная безопасность Azure] (http://www.connectionstrings.com/sql-server-native-client-10-0-odbc-driver/standard-security-azure/) – Lankymart

-1

использовать следующие строки подключения

 
Driver={SQL Server Native Client 10.0};Server=tcp:[serverName].database.windows.net; 
Database=myDataBase;Uid=[LoginForDb]@[serverName];Pwd=myPassword;Encrypt=yes; 

ВИДЕТЬ link.

+0

В чем разница?, все еще используя 'tcp', просто не указывая порт явно, который по умолчанию будет' 1433'? – Lankymart

-1

using System; 
 
using System.Collections.Generic; 
 
using System.Configuration; 
 
using System.Data; 
 
using System.Data.SqlClient; 
 
using System.Linq; 
 
using System.Web; 
 

 
namespace Volta_Reporting_Application.DBL 
 
{ 
 
    public class DBHandler 
 
    { 
 
     public SqlConnection _SqlConnection { get; set; } 
 
     public String _SqlConnectionString { get; set; } 
 
     public DataSet _DataSet { get; set; } 
 
     public List<SqlCommand> _CommandList { set; get; } 
 
     public DBHandler() 
 
     { 
 
      //_SqlConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ; 
 
      _SqlConnectionString = Helpers.Helper.GetConnectionString(); 
 
     } 
 
     public bool OpenConnection() 
 
     { 
 
      
 
       _SqlConnection = new SqlConnection(_SqlConnectionString); 
 
      if (SqlConnection != null && SqlConnection.State == ConnectionState.Closed) 
 
      { 
 
       
 
       _SqlConnection.Open(); 
 
      } 
 
    .Open); 
 
     } 
 

 
     public bool CloseConnection() 
 
     { 
 
      if (SqlConnection != null && SqlConnection.State == ConnectionState.Open) 
 
       _SqlConnection.Close(); 
 
      if (_SqlConnection != null) 
 
       _SqlConnection.Dispose(); 
 
      return _SqlConnection == null; 
 
     } 
 
     public object ExecuteMyCommand(SqlCommand cmd) 
 
     { 
 
      bool res = false; 
 
      try 
 
      { 
 
       OpenConnection(); 
 
       cmd.Connection = _SqlConnection; 
 
       if (cmd.ExecuteNonQuery() > 0) 
 
       { 
 
        res = true; 
 
       } 
 
      } 
 
      catch (Exception) 
 
      { 
 

 
       res = false; 
 
      } 
 
      finally 
 
      { 
 
       CloseConnection(); 
 
      } 
 
      return res; 
 
     } 
 

 
     public object CRUD(string Query, char operation = 'c') 
 
     { 
 
      operation = char.Parse(operation.ToString().ToLower()); 
 
      object res = null; 
 
      try 
 
      { 
 
       OpenConnection(); 
 
       SqlDataAdapter da = new SqlDataAdapter(); 
 
       switch (operation) 
 
       { 
 
        case 'c': 
 
        case 'i': 
 
         da.InsertCommand = _SqlConnection.CreateCommand(); 
 
         da.InsertCommand.CommandText = Query; 
 
         da.InsertCommand.ExecuteNonQuery(); 
 
         res = true; 
 
         break; 
 
        case 'z': 
 
         da.SelectCommand = _SqlConnection.CreateCommand(); 
 
         da.SelectCommand.CommandText = Query; 
 
         return da.SelectCommand.ExecuteScalar(); 
 
        case 's': 
 
        case 'r': 
 
         DataSet ds = new DataSet(); 
 
         da.SelectCommand = _SqlConnection.CreateCommand(); 
 
         da.SelectCommand.CommandText = Query; 
 
         //da.SelectCommand.ExecuteReader(); 
 
         da.Fill(ds); 
 
         res = ds; 
 
         //ds.Dispose(); 
 
         break; 
 
        case 'u': 
 
         da.UpdateCommand = _SqlConnection.CreateCommand(); 
 
         da.UpdateCommand.CommandText = Query; 
 
         res=da.UpdateCommand.ExecuteNonQuery(); 
 
         break; 
 
        case 'd': 
 
         da.DeleteCommand = _SqlConnection.CreateCommand(); 
 
         da.DeleteCommand.CommandText = Query; 
 
         da.DeleteCommand.ExecuteNonQuery(); 
 
         res = true; 
 
         break; 
 
        default: break; 
 
       } 
 
       if (res == null) 
 
        res = false; 
 
      } 
 
      catch (Exception) 
 
      { 
 
       res = null; 
 
      } 
 
      finally 
 
      { 
 
       CloseConnection(); 
 
      } 
 
      return res; 
 
     } 
 
    } 
 
}

+0

Вопрос на самом деле относится к классическому ASP, а не к asp.net. –

1

Опытный тот же вопрос. При установке правильного SQL-клиента, поскольку другой ответ может быть идеальным решением, быстрое решение - просто изменить драйвер на «SQL Server».

Например, из Driver={SQL Server Native Client 10.0};Driver={SQL Server}; в

В вашем случае строка подключения должна быть:

ConnString = "Driver={SQL Server};Server=servername.database.windows.net,1433;Database=azuredb;[email protected]‌ rname;PWD=password;Encrypt=yes;TrustServerCertificate=no;"

Смежные вопросы