Перейти к содержимому

Фотография

ADO.Connection to MSSQL


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 19

#1 Deus

Deus

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 10 мая 2007 - 15:14

:hi:

TestComplete 5.11

Сделал аналогично как в хелпе:
Set connection = ADO.CreateADOConnection 
  connection.ConnectionString = "Provider=MSDASQL.1;Data Source=(local);Initial Catalog=someProject;Persist Security Info=True;User ID=id;Password=password;"
  connection.Open()
с тем отличием, что не создавал DSN link.

Error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Кто-то сталкивался? Почему в хелпе такой странный провайдер, как конфигурировать коннекшн стринг?
  • 0

#2 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 10 мая 2007 - 15:32

а что за база-то?

вот, к примеру, мой коннекшн стринг для MS SQL Server 2000
Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=MyCompName\;initial catalog=MyDatabase

  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#3 Deus

Deus

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 10 мая 2007 - 15:38

а что за база-то?

вот, к примеру, мой коннекшн стринг для MS SQL Server 2000

Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=MyCompName\;initial catalog=MyDatabase

Просмотр сообщения


Да, 2000, спасибо, вроде помогло (SQLOLEDB.1), статус Connected :)
  • 0

#4 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 10 мая 2007 - 15:43

Да, 2000, спасибо, вроде помогло


хм, я только сейчас прочитал заголовок темы :)
в первый раз не прочитал и гадал, что за база

ну, просто повезло значит :)
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#5 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 10 мая 2007 - 15:58

Вот мой пример, правда не через ADO (вдруг пригодится):

var connectionString = "server = ...; uid = ...; pwd = ...; database = msdb"
dotNET.System_Data.System_Data_SqlClient_SqlConnection.ctor(connectionString)

  • 0

#6 Deus

Deus

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 10 мая 2007 - 16:19

Сенкс!

Подскажите еще пожадуйста, как
1. Чем лучше считывать и хранить данные? (ADO.CreateADOCommand, ADO.CreateADOConnection, ADO.CreateADODataSet, ADO.CreateADOQuery)
2. рационально работать с этими данными - реккорд сеты или другие дата сеты
3. документация :)
зы что за An IAQAADOQuery object? (в инете вообще инфы нет)
  • 0

#7 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 10 мая 2007 - 21:29

Сенкс!

Подскажите еще пожадуйста, как
1. Чем лучше считывать и хранить данные? (ADO.CreateADOCommand, ADO.CreateADOConnection, ADO.CreateADODataSet, ADO.CreateADOQuery)
2. рационально работать с этими данными - реккорд сеты или другие дата сеты
3. документация :)
зы что за An IAQAADOQuery object? (в инете вообще инфы нет)

Просмотр сообщения


Всё зависит от того, какие задачи решаются. Лучше описать контекст, тогда и ответы будут более точными...
  • 0

#8 Deus

Deus

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 14 мая 2007 - 10:02

Сенкс!

Подскажите еще пожадуйста, как
1. Чем лучше считывать и хранить данные? (ADO.CreateADOCommand, ADO.CreateADOConnection, ADO.CreateADODataSet, ADO.CreateADOQuery)
2. рационально работать с этими данными - реккорд сеты или другие дата сеты
3. документация :)
зы что за An IAQAADOQuery object? (в инете вообще инфы нет)

Просмотр сообщения


Всё зависит от того, какие задачи решаются. Лучше описать контекст, тогда и ответы будут более точными...

Просмотр сообщения


Необходимо выгрести по двум запросам данные и сравнить их.
  • 0

#9 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 14 мая 2007 - 16:50

Здравствуйте.

1. Чем лучше считывать и хранить данные? (ADO.CreateADOCommand, ADO.CreateADOConnection, ADO.CreateADODataSet, ADO.CreateADOQuery)
2. рационально работать с этими данными - реккорд сеты или другие дата сеты
3. документация :)

Не очень хорошо разбираюсь в этом, но судя по всему вам надо использовать CreateADOQuery чтобы сделать запрос, а тот DataSet, который вернётся после выполнения запроса, использовать для получения доступа к данным.
Документацию, по всей видимости, надо искать либо в хелпе для Delphi (TADOQuery, и т.д.), либо в MSDN (для объектов ADO).

зы что за An IAQAADOQuery object? (в инете вообще инфы нет)

Как я понимаю, это какой-то внутренний интерфейс TestComplete'а. Думаю, найти какую-нибудь информацию можно в type library для TestComplete'а:

   [
      odl,
      uuid(325CF282-C11D-4AE7-A483-CE4F5E6282F8),
      helpstring("Analogue of the VCL TADOQuery object. For more information on methods and properties, see VCL documentation."),
      dual,
      oleautomation
    ]
    interface IAQAADOQuery : IAQACustomADODataSet {
        [id(0x00000901), helpstring("Executes the SQL statement for the ADO query.")]
        HRESULT ExecSQL([out, retval] long* RetVal);
        [id(0x00000902), helpstring("Returns the number of rows operated upon by the latest query execution.")]
        HRESULT RowsAffected([out, retval] long* RetVal);
        [id(0x00000903), propget, helpstring("Contains the text of the SQL statement to execute for the ADO query.")]
        HRESULT SQL([out, retval] BSTR* SQL);
        [id(0x00000903), propput, helpstring("Contains the text of the SQL statement to execute for the ADO query.")]
        HRESULT SQL([in] BSTR SQL);
    };

  • 0
С уважением,
Дмитрий

#10 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 14 мая 2007 - 21:21

Не очень хорошо разбираюсь в этом, но судя по всему вам надо использовать CreateADOQuery чтобы сделать запрос, а тот DataSet, который вернётся после выполнения запроса, использовать для получения доступа к данным.


Не перестаю удивляться Вашим знаниям, Дмитрий! На каждый вопрос - точный ответ. Есть к чему стремиться :good:

Действительно, это вариант:
1) С помощью CreateADOQuery получить DataSet
2) Вытащить значения с помощью методов FieldByName() или FieldValues() и поместить в массив
3) Сравнить массивы

В Help'е, кстати, есть очень не плохой пример по CreateADOQuery

Боюсь показаться занудой, но как мне видится (возможно и ошибаюсь), с помощью dotNet ваша задача решается проще и быстрее: можно сразу сравнить 2-а DataSet'а (не исключаю, что и в ADO есть такая возможность). Если есть желание, завтра "чиркну" пример.
  • 0

#11 Deus

Deus

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 15 мая 2007 - 11:50

Thanks 2 Dmitry N!

Действительно, это вариант:
1) С помощью  CreateADOQuery получить DataSet
2) Вытащить значения с помощью методов FieldByName() или FieldValues() и поместить в массив
3) Сравнить массивы

Просмотр сообщения


Собственно такой вариант пока и был придуман, но хотелось бы работать с DataSet как со структурой, а не просто поля все выписывать ридером в массив.
В любом случае спасибо!
  • 0

#12 Rus

Rus

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Ирина

Отправлено 02 июля 2007 - 13:48

У меня очень похожая проблема, не могу понять, что писать в Provider если БД MSSQL 2005
  • 0

#13 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 03 июля 2007 - 15:01

что писать в Provider если БД MSSQL 2005

попробуйте Provider=SQLNCLI

если не поможет, то может вот этот ресурс вам поможет...
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#14 tanya_loz

tanya_loz

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Лозовая Татьяна
  • Город:Киев

Отправлено 05 июля 2007 - 07:43

Не хочет работать ни с каким провайдером. Говорит:
Microsoft SQL Native Client.
Named Pipes Provider: Could not open a connection to SQL Server [53].
Все протоколы клиентские (кроме VIA) доступны. Firewall выключен.
Вроде SQL сервер правильно настроен, а TC к нему не коннектится.
Кто-то с таким встречался?
  • 0

#15 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 05 июля 2007 - 09:11

если верить яндексу, то

SQL Native Client contains the SQL OLE DB provider and SQL ODBC driver in one native dynamic link library


а для SQL Native Client OLE DB Provider

Provider=SQLNCLI

  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#16 tanya_loz

tanya_loz

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Лозовая Татьяна
  • Город:Киев

Отправлено 05 июля 2007 - 11:51

С провайдером SQLOLEDB.1 получаю такую ошибку:
Microsoft OLE DB Provider for SQL Server.

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

С SQLNCLI Named Pipes Provider: Could not open a connection to SQL Server [53].

Через DSN всё работает. Но не очень хочется настраивать каждый раз на машинах для тестирования DSN.
  • 0

#17 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 05 июля 2007 - 12:08

ну можно погуглить, инфы-то достаточно в интернете
вот навскидку что я нашел

In my case I did not use the real servername as I had put an alias name for the server in my hosts file.

When I changed the server name in my datasource to reflect the real server name in stead of the alias name, I was able to deploy the project


http://support.microsoft.com/kb/919023
сделайте поиск на странице по слову pipe и почитайте ниже

и рекомендую этот вопрос задать в ньюсгруппе тесткомплита, может там кто ответит
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#18 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 05 июля 2007 - 12:15

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

Extended Properties="Network Library=dbmssocn"

отсюда
сделайте поиск по слову pipe и найдете то, на что я наткнулся
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#19 tanya_loz

tanya_loz

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Лозовая Татьяна
  • Город:Киев

Отправлено 05 июля 2007 - 12:50

Спасибо огромное за помощь.
Всё было как всегда слишком банально - надо было 2 слэша перед названием инстанса (C# Script), а у меня по привычке от VBScript'a был один.
  • 0

#20 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 05 июля 2007 - 13:36

да, так бывает, если не указать полную информацию в посте ;)

рад за вас
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных