Страница 1 из 1
Vih для ДО (Счета, ДО на продажу)
Добавлено: 17 дек 2007, 15:49
Ренат
Добрый день!
Есть необходимость программно создать ДО, а затем его заполнить. Со связыванием таблиц и дальнейшей вставкой почему то не получается - выскакивает ошибка "Запрещен доступ к файлу. Код ошибки 46. таблица 1102". Это таблица BaseDoc.
Дайте пожалуйста кто нибудь vih файл для работы с ДО.
Списиба.
Добавлено: 17 дек 2007, 23:52
edward_K
а вы базу не через диск копировали? и что за СУБД?. Обычно это либо права тока на чтения либо в первасиве атрибут у файла Readonly. Ну как вариант - не умеете писать лог.таблицы.
Добавлено: 18 дек 2007, 14:34
Ренат
БД - Pervasive.
Насчет того что не умею писать лог таблицы, может и так.
Код: Выделить всё
//Теперь надо сделать подцепки для создания ДО
and basedoc.cOrg == katorg_DO_FL.Nrec
and basedoc.cPayment == katpayment.Nrec
and basedoc.cGrPol == katorg_DO_FL.Nrec
and basedoc.cGrOtpr == katorg_DO_FL.Nrec
// and basedoc.cStatDoc == StatDoc.Nrec
and basedoc.CNOTE == KatNotes.Nrec
and basedoc.cNalog == KatNalog.Nrec
Далее вставляю командой Insert
Код: Выделить всё
//Теперь создаем ДО и открываем его для редктирования
Set BaseDoc.Name:=parDO_Name;
Set BaseDoc.VidDoc:=201;
Set BaseDoc.Vhodnal:=parDO_Nalog;
Set basedoc.cOrg := katorg_DO_FL.Nrec;
Set basedoc.cPayment := katpayment.Nrec;
Set basedoc.cGrPol := katorg_DO_FL.Nrec;
Set basedoc.cGrOtpr := katorg_DO_FL.Nrec;
Set basedoc.CNOTE := KatNotes.Nrec;
Message('basedoc.cOrg='+string(basedoc.cOrg));
Insert current BaseDoc;
message('Создан документ '+BaseDoc.);
Runinterface('Vschet',BaseDoc.Nrec);
При попытке выполенения команды Insert вылетает ошибка.
Добавлено: 18 дек 2007, 15:22
k_vit
Подцепки для создания ДО ?
Зачем?
Добавлено: 18 дек 2007, 15:25
k_vit
Как-то странно получается....
Вы связываете BaseDoc с таблицами
И тут же пытаетесь вставить в BaseDoc данные из этих таблиц
Добавлено: 18 дек 2007, 15:27
Ренат
Я пытаюсь программно создать ДО
Добавлено: 18 дек 2007, 15:29
Ренат
до этого у меня стоит строка
ClearBuffer(#BaseDoc);
Добавлено: 18 дек 2007, 18:47
aleks1232321
Вообще всегда рекомендую использовать CLEARBUFFER(#ИМЯТАБЛИЦЫ).
Особенно в MSSQL.
Добавлено: 19 дек 2007, 01:15
edward_K
интересна секция from. А также ответ на сообщение k_vit.
Также выбирайте - либо set, либо insert current. Есть еще конструкция
insert into basedoc set список полей - которая по скорости конкурирует с clearbuffer + insert current. CLEARBUFFER в принципе не обязательна, можно просто сбросить Nrec в 0 и заполнить другие нужные поля, но сие приведет к замедлению операции вставки как это ни странно
.
Добавлено: 19 дек 2007, 11:15
Ренат
Может быть все таки мне кто нибудь дасть
vih для работы с ДО ?
Добавлено: 19 дек 2007, 12:09
edward_K
а разобраться почему не пашет слабо? Так то содержимое vih можно подглядеть в exe\galdoc.
Добавлено: 19 дек 2007, 15:58
Ренат
Разбираться долго. И почему то не хочеться
Добавлено: 20 дек 2007, 05:59
Алексей
Раз не хочется, тогда найдите того, кто разберётся
Естественно не бесплатно...
Странный конечно подход...