Имя: Пароль:
1C
1C 7.7
v7: 1C++
0 Spyke
 
15.11.14
23:34
Доброй ночи.
Туплю, обращаюсь за помощью
В 1с
ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"1CPP.dll")
DataBase = СоздатьОбъект("ODBCDatabase");
DataBase.DriverConnect("DRIVER=SQL SERVER;Server=SERVER\SQLEXPRESS;DSN=db_work; UID=sa; PWD=xxxxx;") ; Если DataBase.ЕстьСоединение() =1 Тогда
Сообщить("УРА !!!");
Иначе      
Сообщить("Не смогли подключиться к MySQL");
КонецЕсли;                                        
RecordSet = СоздатьОбъект("ODBCRecordSet");
RecordSet.SetDatabase(DataBase);
    ТЗ=RecordSet.ВыполнитьИнструкцию("
                    |declARE @I INT
                    |exec omarpAddSmOat '',
                    |'" +СокрЛП(Константа.ПодписьСМС)+"',
                    |'"+телефон+"',
                    |0,null,null,
                    |0,
                    |'"+строка_текста_для_отправки+"',
                    |0,0,
                    |@i out,--@id out,
                    |1,
                    |@dbpriority=5
                    |");
                    

Выдает ошибку
ТЗ=RecordSet.ВыполнитьИнструкцию("
{Глобальный модуль(1058)}: State 42000, native 2812, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось найти хранимую процедуру "omarpAddSmOat".
А при выполнение этого скрипта в Sql manager все ОК
1 КонецЦикла
 
15.11.14
23:38
ТЗ = зачем?
Строка соединения - зачем?
Ну и посмотреть наличие процедуры... может она не в этой базе?
2 Spyke
 
15.11.14
23:44
Изначальный код был не мой, а переустанавливал SQL
и менял настройки соединения
ТЗ прав не к чему убрал, не помогает.
База та
3 КонецЦикла
 
15.11.14
23:58
Вот это все убери
DataBase = СоздатьОбъект("ODBCDatabase");
DataBase.DriverConnect("DRIVER=SQL SERVER;Server=SERVER\SQLEXPRESS;DSN=db_work; UID=sa; PWD=xxxxx;") ; Если DataBase.ЕстьСоединение() =1 Тогда
Сообщить("УРА !!!");
Иначе      
Сообщить("Не смогли подключиться к MySQL");
КонецЕсли;
4 КонецЦикла
 
15.11.14
23:59
Выполняй в текущей базе, перед этим внематочно посмотри на ветку с хранимками
5 КонецЦикла
 
16.11.14
00:00
Тоже убрать
RecordSet.SetDatabase(DataBase);
6 Spyke
 
16.11.14
00:11
В смысле убрать?
DataBase = СоздатьОбъект("ODBCDatabase");
DataBase.DriverConnect("DRIVER=SQL SERVER;Server=SERVER\SQLEXPRESS;DSN=db_work; UID=sa; PWD=xxxxx;") //А как подключиться к sql,

RecordSet.SetDatabase(DataBase) /А как подключиться к БД?
7 Spyke
 
16.11.14
00:12
Константы поменял на текст которой в запросе Managera SQL
Итог такой же
8 КонецЦикла
 
16.11.14
00:14
Начни с простого:

Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "1cpp.dll") = 0 Тогда
        Сообщить("ВК 1С++ не загружена!");
    Иначе
        RecordSet = СоздатьОбъект("ODBCRecordSet");
    КонецЕсли;

RecordSet.ВыполнитьИнструкцию("exec _1sp_SCXXX_ByID '      0   '");
9 Spyke
 
16.11.14
00:14
Если кому-то интересно и есть желание помочь могу дать доступ по TeamViewer
Пиво с меня // глаза а то слипаются и мозг уже не дышит
10 КонецЦикла
 
16.11.14
00:15
(9) С радостью бы, но сам сижу в RDP. А еще 2 ушлепочных обмена на завтра - разборки.
11 Salimbek
 
16.11.14
00:19
(9) Ты к серверу подключился, а рабочую базу - не выбрал. Поэтому запрос выполняется (скорее всего) к базе [master].
Так что либо запрос
exec [dbo].[mybase].omarpAddSmOat
либо вначале
USE mybase
GO
exec omarpAddSmOat ...

И сообщение "MySQL" вгоняет в недоумение... Сервер то другой
12 КонецЦикла
 
16.11.14
00:23
(11) Копипасте - зло :)
13 КонецЦикла
 
16.11.14
00:25
GO не проканает, нужно отдельными батчами, я написал что убрать - должно взлететь
14 Salimbek
 
16.11.14
00:30
(13) Ему нельзя убрать, у него, видимо, коннект к сторонней базе.
15 Spyke
 
16.11.14
00:31
(14) Да, пробую. Идею и ошибку понял
16 КонецЦикла
 
16.11.14
00:35
(14) Смысл подключения к БД если не нужны метаданные?
Написать через точку вызов и привет
17 Spyke
 
16.11.14
00:49
(16) Понял
(11) Взлетело
Но есть но это скрипт пишет в Бд а потом сервис отправляет смс
при отправке через Manager все приходит отчет лога
TLV:
00:43:26.463          LDone=TRUE
00:43:26.464d debug submit_sm_resp    465879837798563853! -4=submit_sm_resp ROK #8388647; 20/19
    34363538373938333737393835363338353300
00:44:25.464          smppSendEnquireLink:
00:44:25.518          enquire_link_resp smssvc=Autodelta@CLI:81.30.218.13:40007
00:44:41.551. Submit_Sm.Send    4=submit_sm ROK #8388648; 56/55
00:44:41.551. Submit_Sm.Send    ===== SmppMessage:
service_type:
source_TOA: 50
source_addr: Autodelta
dest_TOA: 11
destination_addr: 79629378101
esm_class: 00
protocol_id: 00
priority_flag: 01
schedule_delivery_time:
validity_period:
registered_delivery: 00
replace_if_present_flag: FALSE
data_coding: 08
sm_default_msg_id: 0
short_message: 740065007300740020004204350441044204 [t e s t   B5AB]
UCS2: test тест
TLV:
00:44:41.618          LDone=TRUE
00:44:41.619d debug submit_sm_resp    465879998859837454! -4=submit_sm_resp ROK #8388648; 20/19
    34363538373939393838353938333734353400
Из 1С нет лог
TLV:
00:42:11.301          LDone=TRUE
00:42:11.302d debug submit_sm_resp    465879676737290257! -4=submit_sm_resp ROK #8388646; 20/19
    34363538373936373637333732393032353700
00:43:10.302          smppSendEnquireLink:
00:43:10.342          enquire_link_resp smssvc=Autodelta@CLI:81.30.218.13:40007
00:43:26.385. Submit_Sm.Send    4=submit_sm ROK #8388647; 47/46
00:43:26.385. Submit_Sm.Send    ===== SmppMessage:
service_type:
source_TOA: 50
source_addr: Autodelta
dest_TOA: 11
destination_addr: 79629378001
esm_class: 00
protocol_id: 00
priority_flag: 01
schedule_delivery_time:
validity_period:
registered_delivery: 00
replace_if_present_flag: FALSE
data_coding: 00
sm_default_msg_id: 0
short_message: 313131313132323232 [111112222]
18 КонецЦикла
 
16.11.14
00:51
(17) Я так и знал
Там, видимо, тоже копипастили...
19 Spyke
 
16.11.14
00:55
(18) Где ?
Добавил лишь
|USE db_work
20 Spyke
 
16.11.14
01:12
Есть еще какие-нибудь идеи?
21 КонецЦикла
 
16.11.14
01:19
Что за сервис?
Ты считаешь что во втором часу ночи это можно развидеть?
22 Spyke
 
16.11.14
01:35
(21) Сервис работает нормально, сейчас набросал внешнюю обработку все Ок, буду разбираться дальше в коде где-то тел выбирается не правильно. Все большое спасибо
23 Spyke
 
16.11.14
01:52
Еще раз все спасибо
Все и в коде ошибку нашел
24 Chameleon1980
 
16.11.14
12:06
плин. хранимка-то есть?
25 КонецЦикла
 
16.11.14
12:07
доброе утро...
Закон Брукера: Даже маленькая практика стоит большой теории.