Я понимаю, что Microsoft решила еще в 2011 году отказаться от OLE DB и что никаких новых драйверов или обслуживания не произойдет за пределами собственного клиента V11 VX. В будущем вы должны использовать ODBC драйверов на основе - http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspxOLEDB, ODBC, Ntext и Nvarchar (макс.)
Последняя версия драйвера ODBC является 'Microsoft ODBC Driver 13 для SQL Server' выпуска 25 июля 2016 года - https://www.microsoft.com/en-us/download/details.aspx?id=50420
драйверы ODBC от Native Client V9,10,11 и драйвер Microsoft ODBC SQL Server V11 и 13 все работают в классическом ASP-коде, взаимодействующем с SQL-сервером (я использую SQL 2012), за исключением одной проблемы - nText и Nvarchar (max).
Они просто возвращают пустое - я видел решения, в которых вы должны сначала прочитать локальную переменную, а не обращаться к набору записей непосредственно, например. varStr = rs ("LargeText"), но это не работает для меня. И есть другие упоминания об использовании get chunk и т. Д.
Но я довольно счастливо использую собственный клиент V9 (Provider = SQLNCLI), который отлично работает с этими типами данных.
Итак, мои вопросы:
Есть в любом случае, чтобы получить ODBC драйверов, работающих с NTEXT/NVARCHAR (макс) типов данных?
Есть ли какая-либо польза от использования ODBC над OLEDB?
Должен ли я наращивать до ODBC на каком-то этапе, чтобы подключиться к SQL-серверу в будущем, то есть SQL 2014/2016?
Другими словами, могу ли я просто продолжать использовать OLEDB в будущем?
OK, Lankymart - Я хотел бы использовать что-то вроде этого:
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={SQL Server Native Client 11.0};Server=*Yourserver*;Database=*YourDatabase*;User ID=*YourUserid*;Password=*YourPassword*;"
'oConn.Open "Provider=SQLNCLI11;Server=*YourServer*; Database=*YourDatabase*;User ID=*YourUserID*;Password=*YourPassword*;"
set view=oConn.Execute("SELECT [PText] FROM [TextTest]")
ttext=view("PText")
response.write(ttext)
view.Close
set view = Nothing
oConn.Close
set oConn = Nothing
Где [PText] является NVARCHAR (Макс) поле в SQL. Это не работает с использованием собственного клиента ODBC ({SQL Server Native Client 11.0}), но будет работать с использованием OLE DB (SQLNCLI11).
Даже с SQL 2014/2016 или будущими выпусками SQL? –
Возможно, вы используете [неправильную строку подключения] (http://www.connectionstrings.com/sql-server-native-client-11-0-odbc-driver/), если Native Client через ODBC не работает для вас , – Lankymart
https://msdn.microsoft.com/en-us/library/ms131267(v=sql.110).aspx – Lankymart