Имя: Пароль:
1C
 
Как из 8.0 напрямую работать с некоей базой SQL?
0 antidot
 
26.12.08
17:20
Как из 8.0 напрямую работать с некоей базой SQL?

Структура базы известна. Надо читать из базы и писать в нее.
1 Попытка1С
 
26.12.08
17:20
(0) по ADO
2 antidot
 
26.12.08
17:21
А там запись как реализуется ?
3 antidot
 
26.12.08
17:21
И ODBC это оно и есть ?
4 Живой Ископаемый
 
26.12.08
17:21
2(2) c помощью запросов типа "INSERT INTO"
5 Живой Ископаемый
 
26.12.08
17:22
2(3) ОДБС - это драйвера...
6 antidot
 
26.12.08
17:22
Ясень нащщет запросов, а ODBC это оно ADO и есть ?
7 antidot
 
26.12.08
17:23
Понятно, то есть через ODBC драйвер ?
8 Живой Ископаемый
 
26.12.08
17:23
считай, да...
9 antidot
 
26.12.08
17:24
Если все вышесказанное работает, то вопросов больше нет.
10 H A D G E H O G s
 
26.12.08
17:33
(0) Привет, Великий и Могучий.
11 philll
 
26.12.08
17:41
Connection = Новый COMObject("ADODB.Connection");
   
       
работает, например:

ConnectionString = СокрЛП(строка(константы.СтрокаПодключения.Получить()));    
Connection.ConnectionTimeOut =6000;
Connection.CommandTimeout   =6000;
Connection.CursorLocation = 3;
   
Connection.Open(ConnectionString);
   
для каждого строка из табличнаяЧасть1    цикл
НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");

         
НаборЗаписей = connection.Execute("имя процедуры"+"'"+параметр1+"'"+",'"+параметр2+"'");

Пока НаборЗаписей.Eof() = 0 Цикл

....
12 antidot
 
26.12.08
20:48
Ну это-то я знаю. А как данные вставлять ? Инсертом ?

А если я фотку в "blob" хочу вставить ?
13 antidot
 
26.12.08
20:49
(11) привет ! :-)
14 Балабес
 
26.12.08
20:53
в моем случае, связь через адо занимала часов 5, сейчас скуль гоняет через хр. процедурки тоже самое за 3 минуты.
15 antidot
 
26.12.08
21:08
(14)Что за технология ?
16 Immortal
 
26.12.08
21:53
(15) подход скорее..в ms sql пишется хранимая процедура, которая и стартует из 1с..
17 antidot
 
26.12.08
22:10
а *.dll для 1С, аналогичных как для php нет ?
18 Immortal
 
26.12.08
22:12
(17) каких?
да они и не нужны..
19 antidot
 
26.12.08
22:20
а как-же тогда блобы инсертить ? Базовые типы можно через строку передать, а блобы ?
20 antidot
 
26.12.08
22:20
мне надо в базе фотки сохранять в том числе
21 H A D G E H O G s
 
26.12.08
22:44
(20) Ты будешь брать файл и сохранять в базе через 1С, или бы будешь брать объект Картинка и сохранять в базе?
22 antidot
 
26.12.08
22:47
Брать буду файлик с картинкой, а вот как его сохранить- ума не приложу.
23 Defender aka LINN
 
26.12.08
23:07
Меня всегда роадовали люди, которые хотят "блобы инсертить" в "базу SQL"
24 H A D G E H O G s
 
27.12.08
00:47
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Stream=Новый COMОбъект("ADODB.Stream");
   Stream.Type=1;
   Stream.Open();
   Stream.LoadFromFile("C:\БылЗвонок.bmp");
   Connection=Новый COMОбъект("ADODB.Connection");
   Connection.Open("Provider=SQLOLEDB.1; Data Source=NEXTGEN; Initial Catalog=MyBase; User ID=sa;");
   RecordSet=Новый COMОбъект("ADODB.Recordset");
   RecordSet.CursorLocation=3;
   RecordSet.LockType=2;
   Запрос="Select data from dbo.MyTable";
   RecordSet.Open(Запрос, Connection);
   Если RecordSet.RecordCount=0 Тогда
       RecordSet.AddNew();
   //    RecordSet.Fields(0).Value=1;
   Иначе
       RecordSet.MoveFirst();
   КонецЕсли;
   RecordSet.Fields("Data").Value=Stream.Read(-1);
   RecordSet.Update();
   Stream.Close();
КонецПроцедуры

Процедура ОсновныеДействияФормыd(Кнопка)
   Stream=Новый COMОбъект("ADODB.Stream");
   Stream.Type=1;
   Stream.Open();
   Connection=Новый COMОбъект("ADODB.Connection");
   Connection.Open("Provider=SQLOLEDB.1; Data Source=NEXTGEN; Initial Catalog=MyBase; User ID=sa;");
   RecordSet=Новый COMОбъект("ADODB.Recordset");
   RecordSet.CursorLocation=3;
   RecordSet.LockType=2;
   Запрос="Select data from dbo.MyTable";
   RecordSet.Open(Запрос, Connection);
   RecordSet.MoveFirst();
   Stream.Write(RecordSet.Fields("Data").Value);
   Stream.SaveToFile("c:\БылЗвонокВост.bmp");
   Stream.Close();
КонецПроцедуры
25 H A D G E H O G s
 
27.12.08
00:51
(24) Через Опу, но работает..

Табличка MyTable, колонка Data, тип Image.

Пинок дан, как говорится.
P.S. Делал хрень первый раз, может что и не работает..
P.S.S. Особенно симпатичны посты (173, 176, 178, 179) ветки OFF: Чего-то на работу перестали принимать по 1С. Чего, "снеговик" уже никому не нужен ?
Я - не злопамятный. Просто я - злобный и у меня память хорошая.
26 Immortal
 
27.12.08
01:03
неплохо подъе@#л=))
27 antidot
 
27.12.08
14:42
(25)Да нашол я говноработенку одну, херня конечно, но хоть дома не сидеть.
28 antidot
 
27.12.08
14:43
Там есть база данных SQL-ная и данные надо гонять туда-сюда, и это при том, что там говеный интерфейс, нет средств выведения отчетов и пакетного ввода вывода.
29 NcSteel
 
27.12.08
15:01
А не легче твои картинки на диске хрнить?
30 Балабес
 
27.12.08
15:02
(24) в 2008 можно блобы передавать, ждем нормального размера интсалятор, 4 гига это дикость.
31 H A D G E H O G s
 
27.12.08
15:03
Всем привет..
32 H A D G E H O G s
 
27.12.08
15:05
(30) Пардон, а я что в (24) передавал?
33 antidot
 
27.12.08
15:49
(29) А там они в базе сохраняются и говнопрограмка их кажет, когда надо. То есть надо хранить в базе.
34 antidot
 
27.12.08
15:51
А кроме ADO есть еще какие-нито методы доступа в SQL базе ?
35 H A D G E H O G s
 
27.12.08
15:52
(34) ППЦ, автор тебе пинок (24) не помог?
36 antidot
 
27.12.08
15:54
(35)Вообщет седни суббота, а база на работе. Просто я решил за выхи подумать, как там и чего можно сделать.

Надеюсь, описание методов есть в инете ? Я не очень понимаю идеалогию того, что ты сделал.
37 Балабес
 
27.12.08
16:25
(36) лол :)
38 szhukov
 
27.12.08
16:36
Ветку в юмор пора! лол :)
39 shuhard
 
27.12.08
16:43
(34) не хочешь стрим, юзай чунк
http://support.microsoft.com/kb/189415/
40 antidot
 
27.12.08
17:40
(38)RecordSet.CursorLocation=3 почему курсор на третьей строчке ? И на третьей-ли ?

Это я для примера спросил. Нет, ну можно несознательно повести себя, сперва натворить делов, а потом понять где ты был неправ.
41 shuhard
 
27.12.08
17:44
(40)
adUseClient=3
adUseServer=2
42 antidot
 
27.12.08
17:50
(41) Я не понял, что ты написал. Я не телепат и что у тебя в голове понять не могу. Можешь выразиться по человечески ?
43 shuhard
 
27.12.08
17:53
(42) забанили весь интернет - купи MSDN
44 H A D G E H O G s
 
27.12.08
17:55
(41) Пардон, ошибся..
(42) http://fp.grsu.by/UchProc/konspekt/VBA/ch05/ch05/ch02/ch02
45 H A D G E H O G s
 
27.12.08
17:56
(44) В принципе писал - на коленке, пусть автор улучшает.. Он у нас - спец.
46 antidot
 
27.12.08
18:02
(45)Спасибо Хадгенхог, но чтоб улучшить, надо разобраться что за что отвечает, согласись ?!
47 lift
 
28.12.08
05:33
да брось ты 8.0
48 ДенисЧ
 
28.12.08
05:36
Как только нашего Ёжика не называли :-))
49 ProgAL
 
28.12.08
10:34
(0) Кстати, а последняя работа по САПу была не в Заволжье со служебным автобусом? Случайно не через АНКОР ее нашел?
50 Балабес
 
28.12.08
11:08
автор жжет, сначала просит помощи, ему помогают, потом он еще и гнать на помощников начинает. вот и помогай после этого людям.
51 antidot
 
29.12.08
14:43
(49)Нет, у немцев одних.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан