Вход | Регистрация

1С:Предприятие ::

Метки:

Выгрузка в Access

Я
   Таня
 
08.02.04 - 10:17
Я создаю таблицу у которой имя Praic

db.Execute("Create table Praic                                                                                                
       //|(Rec_ind integer,

        |(Код integer,
        |Артикул text,
        |Цена integer,
        |Товар text);"
       );
А как вместо конкретного имени задать переменную?, так как желательно из нее брать в качестве имени таблицы название прайс-листа. То есть чтобы на каждый прайс создавалась отдельная таблица.
 
  Рекламное место пустует
   Волшебник
 
1 - 08.02.04 - 11:33
Рекомендую назвать таблица "Price" или "Prais", а не такой русско-английский гибрид, как сейчас.

Имя таблицы нужно сохранить в строковую переменную и применить операцию конкатенации:

db.Execute("Create table " & TableName & "...")
   Таня
 
2 - 08.02.04 - 12:36
Как убрать все пробелы в строке переменной?
не слева и справа и внутри.
   Таня
 
3 - 08.02.04 - 12:45
Как проверить существование таблицы?
   Шершень
 
4 - 08.02.04 - 15:04
(3) В аксессовской базе есть скрытая системная таблица MSysObjects. Если выдать к ней такой запрос:

SELECT Id FROM MSysObjects WHERE (Name="<имя>") AND (Type=1)

то, если таблицы нет, будет возвращен пустой запрос, а если есть, будет возвращена одна строка.
   Шершень
 
5 - 08.02.04 - 15:05
(2) Ты ведь пишешь в 1С? Чего проще:

перем = СтрЗаменить(перем, " ", "");
   Таня
 
6 - 08.02.04 - 15:11
За (5) огроменное спасибо. :) Все гениальное просто :)
а с существование таблицы я по другому решила, но тоже спасибо :)
   Таня
 
7 - 08.02.04 - 18:57
При создании таблицы, если строка которая будет ее именем (из переменной) содержит пробелы, сообщает об ошибке
Create Table что то типа того, что ошибка синтаксиса.
В то же время если создавать таблицу прямо в Access то он позволяет сохранять имя таблицы с пробелами.
Если я убираю пробелы из имени таблицы (то есть так как в (5)) то выгрузка выполняется нормально.
Но потом мне надо загружать данные из таблицы в справочник, при этом я создаю новый прайс у которого задаю имя как у таблицы, поэтому имя получается без пробелов, а это не красиво.
Как решить эту проблему?
   Шершень
 
8 - 08.02.04 - 19:10
Когда пишешь CREATE TABLE, заключи имя таблицы с пробелами в квадратные скобки.
   Таня
 
9 - 08.02.04 - 19:59
пишу:
db.Execute("Create table " + [фасВладелец] + "                                                                                            
Сообщает ошибку синтаксиса,
кстати с & не работает, только с +
   Шершень
 
10 - 08.02.04 - 20:07
(9) & не работает, потому что ты строку получаешь в 1С, а не в Барсике.
Полностью строковое выражение для CREATE TABLE можешь запостить?
 
  Рекламное место пустует
   Шершень
 
11 - 08.02.04 - 20:11
А, протупил я.
Нужно "CREATE TABLE [" + фасВладелец + "]..."
   Таня
 
12 - 08.02.04 - 21:01
Спасибо, получилось :)
   Шершень
 
13 - 08.02.04 - 21:04
А я верил в тебя! :-)
   Таня
 
14 - 08.02.04 - 21:53
Как выковырять значение из списка справочника, если там колонка "Текст" и оно туда вставляется как вычисляемое значение функции? через Спр.ИмяКолонки не получается достать.
   Шершень
 
15 - 09.02.04 - 09:12
Думаю, никак. Придется вычислять функцию для каждой строки отдельно.


Список тем форума
  Рекламное место пустует
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует