Имя: Пароль:
1C
1С v8
Запись в SQL через форму внешней обработки
0 Hикита
 
21.07.14
08:57
Подскажите пожалуйста новичку что делаю не так, (Нужно записывать из формы внешн. обработки в SQL )  Может примеры какие-нибуть подскажете ? Как правельно соединится с базой и записать данные в таблицу?
[code]
//СПЕРВА ПОДКЛЮЧЕНИЯ К БАЗЕ
&НаКлиенте
Процедура Записать(Команда)
    ЗаписатьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаписатьНаСервере()


    СтрокаПодключения =
"Provider=sqloledb;
|User ID=nikita;
|Pwd=12345;
|Data Source=sql.tk-chel.ru;
|Initial Catalog= SVCTEST";//наша database

Connection  = Новый COMОбъект("ADODB.Connection");
Command  = Новый COMОбъект("ADODB.Command");
RecordSet  = Новый COMОбъект("ADODB.RecordSet");
Попытка
  Connection.Open(СокрЛП(СтрокаПодключения));
  Command.ActiveConnection   = Connection;
  //Проверка на наличие  database
  Command.CommandText = "select * from dbo_MoveH where name = 'SVCTEST'";
  RecordSet = Command.Execute();
    Если RecordSet.EOF() И RecordSet.BOF() Тогда
   //нет записей, нет такой database, нужно создать;
   Возврат;
  КонецЕсли;
  
  RecordSet.MoveFirst();
Исключение
  Сообщить(ОписаниеОшибки());
КонецПопытки;

   // ДАЛЬШЕ ЗАПИСЬ
  


ФайлДБФ = Новый XBase(ВнешниеИсточникиДанных.ТК.Таблицы.dbo_MoveH);
ФайлДБФ.Кодировка=КодировкаXBase.OEM;
КолЗаписей = ФайлДБФ.КоличествоЗаписей();
ФайлДБФ.Первая();

Для сч = 1 По КолЗаписей Цикл
Command.CommandText =
"USE SVCTEST
|INSERT INTO dbo_MoveH  VALUES(    
|'"+12344+"',
|'"+4 +"',
|'"+Объект.Контакт+"',
|'"+Объект.Телефон+"',
|'"+Объект.Компания+"',
|'"+Объект.Страна+"',
|'"+Объект.Регион+"',
|'"+Объект.Город+"',
|'"+Объект.Улица+"',
|'"+Объект.Дом+"',
|'"+Объект.Оффис+"',
|'"+Объект.КраткоеОписание+"',
|'"+Объект.ТипОплаты+"',
|)";
Command.Execute();
ФайлДБФ.Следующая();
КонецЦикла;

ФайлДБФ.ЗакрытьФайл();
Command = Неопределено;
Connection = Неопределено;
RecordSet = Неопределено;
//Соединение.Close();

КонецПроцедуры

[/code]
1 Defender aka LINN
 
21.07.14
09:02
Догадаться, что именно не работает надо как обычно, телепатическим образом?
2 Hикита
 
21.07.14
09:28
3 Hикита
 
21.07.14
09:29
4 Hикита
 
21.07.14
09:30
5 ДенисЧ
 
21.07.14
09:31
инвалид бжект наме.
Если что, dbo.MoveH
6 ДенисЧ
 
21.07.14
09:31
И в ообще - откуда взялось имя dbo_MoveH ??
7 Defender aka LINN
 
21.07.14
09:32
(4) Может быть проблема в том, к примеру, что длина имени файла больше 8 символов? Я так-то не претендую на истину, но что-то подсказывает...
8 Hикита
 
21.07.14
09:40
(6) Это Таблица
9 Hикита
 
21.07.14
09:40
(6)Имя взялось из БД
10 ДенисЧ
 
21.07.14
09:43
(8) (9) стоп. Ты через ВИД пишешь? Там до сей поры подчёркивания очень не любят.
Так что придётся переименовывать.
11 Hикита
 
21.07.14
09:48
(10)В БД через точку dbo.MoveH в 1с щяс переписал так же.
Ошибка остается такой же
12 ДенисЧ
 
21.07.14
09:58
(11) не верю.
Или ВИД дурят, или ты черепашка.
13 Hикита
 
21.07.14
10:11
(12) Внешние источники подкл все нормально.
Таблици читаются все работает.
14 Hикита
 
21.07.14
10:27
(13) А ошибки по прежнему присутствуют
15 Hикита
 
21.07.14
11:52
ошибка вызова метода execut типы не совпадают
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший