Работа с БД MS SQL Server 2008 R2
#1
Отправлено 30 сентября 2011 - 11:35
Для начала хочу реализовать это:
Создать в SQL Server Management Studio таблицу с данными и написать функцию, которая подключается к файлу базы данных, выбирает данные из таблицы и выводит результат в лог TestComplete-а
ps: Подключение через ADO DB (как я понимаю, это самый простой способ работы с базами данных)
Таблица: dbo.Friends (кстати, нужно ли схему указывать в обращении?)
БД: MyDataBase
Server name: .\SQLEXPRESS
Connection (User name): UNIVERSE\vpupkin
pswd не ставил
Основная загвоздка в написаниии connection_string (Data Source, Initial Catalog, User Id, Password)
Пробовал различные варианты заполнения этих параметров, но безуспешно). Короч, если есть какие-то соображения по этому поводу - буду оч. признателен.
ну и вот собственно функция:
function TestADODB()
{
// подключаемся к базе
var mydb = Sys.OleObject("ADODB.Connection");
mydb.ConnectionString = "Data Source = myServerAddress; Initial Catalog = myDataBase; User Id = myUsername; Password = myPassword"; //ну эт соответственно шаблон
mydb.Open();
// выбираем данные
var rs = mydb.Execute("SELECT * FROM dbo.Friends");
rs.MoveFirst();
while(!rs.EOF)
{
Log.Message(rs.Fields("fname").Value);
rs.MoveNext();
}
// закрываем подключения
rs.Close();
mydb.Close();
}
#2
Отправлено 30 сентября 2011 - 19:53
Во-вторых, вы пишите:
Кто такой этот впупкин? Это доменный юзер или он существует только на SQL сервере? Если доменный, то как вам удалось создать пользователя без пароля, если же SQL пользователь, то что такое UNIVERSE?Connection (User name): UNIVERSE\vpupkin
pswd не ставил
В-третьих, убедитесь, что у вашего пользователя есть доступ к нужной базе. Для этого просто залогиньтесь под ним через ту же студию.
В-четвертых, если впупкин таки SQL пользователь, то проверьте, что у вас на сервере включена SQL Server Authentication (по умолчанию она выключена).
В-последних, если впупкин таки доменный пользователь, то указание логинов с паролями вам ничем не поможет. Для того, чтобы коннектиться через WIA в connection string нужно указать Integrated Security=SSPI без логинов и паролей, тогда ТС будет ломиться в базу под тем пользователем под которым он запущен.
#3
Отправлено 03 октября 2011 - 05:43
Как я понимаю - конекшн стринг будет след. вида:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
что указывать в параметрах myServerAddress и myDataBase?
Untitled.png 62,53К 19 Количество загрузок:
#4
Отправлено 03 октября 2011 - 05:59
Т.е. для вашего случая должно быть
Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;Initial Catalog=myDataBaseName;Integrated Security=SSPI;
#5
Отправлено 03 октября 2011 - 06:13
Я думаю, может в этом причина:
В-третьих, убедитесь, что у вашего пользователя есть доступ к нужной базе. Для этого просто залогиньтесь под ним через ту же студию.
Как залогиниться через студию?
#6
Отправлено 03 октября 2011 - 06:21
Под "через ту же студию" имелась ввиду SQL Management Studio. :)
В-третьих, убедитесь, что у вашего пользователя есть доступ к нужной базе. Для этого просто залогиньтесь под ним через ту же студию.
Как залогиниться через студию?
Я надеюсь, что TC и SQL сервер на одной машине стоят, и вы запускаете TC под пользователем впупкин?
#7
Отправлено 03 октября 2011 - 06:38
Еще раз код приведу (может я в чем-то косячу):
function TestADODB()
{
// подключаемся к базе
var mydb = Sys.OleObject("ADODB.Connection");
mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;Initial Catalog=MyDataBase;Integrated Security=SSPI";
mydb.Open();
// выбираем данные
var rs = mydb.Execute("SELECT * FROM dbo.Friends");
rs.MoveFirst();
while(!rs.EOF)
{
Log.Message(rs.Fields("fname").Value);
rs.MoveNext();
}
// закрываем подключения
rs.Close();
mydb.Close();
}
#8
Отправлено 03 октября 2011 - 07:17
mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=.\\SQLEXPRESS;Initial Catalog=MyDataBase;Integrated Security=SSPI;";Не забывайте слеши экранировать :).
#9
Отправлено 03 октября 2011 - 07:39
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных