Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как прочитать таблицу в MS SQL 2012 (http://forums.kuban.ru/f1040/kak_prochitat-_tablicu_v_ms_sql_2012_a-2658235.html)

romba 28.05.2012 15:29

Как прочитать таблицу в MS SQL 2012
 
Народ, подскажите как сделать или где прочитать про такую задачу: нужно из 7.7 подключиться к базе SQL 2012 и прочитать определенную таблицу. Особенно буду рад примеру кода.

Sadovnikov 28.05.2012 15:36

1С-ка скулёвая или нет?
А вообще - ODBC в руки и вперед.

P.S. А что, уже есть маньяки, которые боевые базы под 2012-м скулем гоняют?

Billi 28.05.2012 15:39

[quote=Sadovnikov;25270300]А что, уже есть маньяки, которые боевые базы под 2012-м скулем гоняют? [/quote]
Присоединяюсь к вопросу.

Sadovnikov 28.05.2012 15:43

2-Billi > Не поехал я нынче мимо тебя - через Ачинск рванул...

Billi 28.05.2012 15:44

3-Sadovnikov >Зря :)

Billi 28.05.2012 15:51

3-Sadovnikov >Тебя в Ужуре лежищие полицейские не задолбали?

Sadovnikov 28.05.2012 15:54

5-Billi > Да я привык к ним уже...

Billi 28.05.2012 15:55

6-Sadovnikov >Но не через каждые же 200 метров на протяжении всего города!

Sadovnikov 28.05.2012 15:57

7-Billi > Да там этого города-то :)
Тем более, подъезжал к нему со стороны Назарово, до бараньими тропами. Так, совсем чуть-чуть этих полицаев мне досталось.

Billi 28.05.2012 15:59

8-Sadovnikov >Я там их насчитал 21 штуку :)
Пришлось найти объезд города, по военной дороге через лес. Ну и короче там. :)

romba 28.05.2012 16:55

(1),(2) маньяки есть. 1С-ка есть и скулевая и обычная, читать SQL таблицы должны обе

romba 28.05.2012 16:55

(1),(2) эфир не засоряйте

Billi 28.05.2012 17:01

11-romba >Автор, ты не обижайся, мы твою тему в топе держим. Щас скулевские зубры подтянутся и помогут.

Billi 28.05.2012 17:06

А пока можешь [url=http://www.1csql.ru/materials/articles/develop.html~bfd0f58f-25af-add2-6767-09a5bf664605]тут[/url] почитать, для общего ознакомления. :)

Billi 28.05.2012 17:40

А пока осмыливаешь, можно попробовать вот так (скл 2008R2):

ЗагрузитьВнешнююКомпоненту("[url=http://www.1cpp.ru/images/3/32/Icpp-latest.rar]1CPP.dll[/url]");

База = СоздатьОбъект("ODBCDataBase");
SQLServer = "ИмяСервера";
SQLBase = "ИмяБазы";
User = "ИмяЮзера";
Password = "Пароль";
База.Соединение("
|Driver={SQL Server Native Client 10.0**;
|Server="+SQLServer+";
|Database="+SQLBase+";
|Uid="+User+";
|Pwd="+Password+";");
Если База.ЕстьСоединение() = 0 Тогда
Сообщить("Упс!");
Возврат;
КонецЕсли;

Запрос = СоздатьОбъект("ODBCRecordSet");
Запрос.УстБД(База);
ТекстЗапроса = "
|SELECT *
|FROM ИмяТаблицы";

ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.ВыбратьСтроку();

Uho 29.05.2012 10:09

а чем ADO не подходит? или 2012 скл какой-то особенный?

drums2004 29.05.2012 15:19

ADODB, не ?

Uho 29.05.2012 15:23

а как насчет ADO?

Billi 29.05.2012 15:27

(16) (17) Да нет, так не прокатит.
Тут через ADO нужно действовать.

sinegurochka 29.05.2012 15:51

RecordSet = СоздатьОбъект("ADODB.Recordset");
СтрокаПодключения = "тут строка подключения к 2012 скулю, в инете найдешь";
СтрокаЗапроса = "SELECT * FROM TableName";
Попытка
RecordSet.Open(СтрокаЗапроса, СтрокаПодключения, 3, 1, 1);
Исключение
Сообщить("Ошибка: "+ОписаниеОшибки());
Возврат;
КонецПопытки;
// тут читаешь и обрабатываешь полученный набор данных RecordSet либо через его коллекцию, либо через компоненту pdtools.dll , если не хочешь получить сообщение о неподдерживаемых типах данных (компоненту найдешь в инете)
RecordSet.Close();

Вот и все

Sadovnikov 29.05.2012 16:21

19-Синегурочка > Только с 1С++ это всё удобнее.

sinegurochka 29.05.2012 16:43

20-Sadovnikov >
ТС пропал
примеры кодов ему дали, а в ответ тишина
неинтересно

romba 31.05.2012 13:51

Всем спасибо, пример с 1с++ чего-то не получился. Получилось все сделать через ADO по ссылки из (13)

Billi 31.05.2012 14:08

22-romba >не получился, ибо я не вижу какой у тебя драйвер скуля на клиенте стоит - который в систему вшит или из инсталяхи клиентской части скуля.
Короче, всё дело в этом параметре строки подключения:

Driver={SQL Server Native Client 10.0**;

ЗЫ. посмотреть какой драйвер стоит в системе можно в "Администрирование" - "Источники данных (ODBC)"-закладка "Драйверы"


Текущее время: 09:10. Часовой пояс GMT +3.