Секс вместе с Clation *.tps через ODBC #689527


#0 by jour
Всем доброго времени суток, стоит задача получать данные из внешних таблиц *.tps   Единоразово уже умею получать данные путем конвертации таблиц в *.csv и дальше типовая загрузка из экселя, однако нужна постоянная связь с таблицами. Таблицы зашифрованы, у каждой свой пароль, поэтому будем подключаться не к директории а к конкретной таблице сразу, в настройках драйвера пароль уже прописан, поэтому надеюсь его не нужно еще раз повторять в строке соединения. Но где то я ошибаюсь, прошу хелп. &НаСервере Таблица = Соединение.Open("select ::= Cli:nm FROM tablelist where groupby having"); Исключение Сообщить("Не могу подключиться к базе!!!"); КонецПопытки; КонецПроцедуры По выполнению получаю два сообщения - "База подключена!" и сразу же "Не могу подключиться к базе", т.е. Таблицу я не получаю. Вот это полный список команд для *.tps таблиц statement ::= CREATE create | DROP drop | SELECT select orderby | INSERT insert | DELETE delete | UPDATE update | passthroughSQL passthroughSQL ::= any statement supported by the backend create ::= TABLE tablename ( createcols ) | INDEX indexname ON tablename ( indexcolumns ) indexcolumns ::= indexcolumn | indexcolumn , indexcolumns drop ::= TABLE tablename | INDEX indexname select ::= selectcols FROM tablelist where groupby having delete ::= FROM tablename where insert ::= INTO tablename insertvals update ::= tablename SET setlist where setlist ::= set | setlist , set set ::= columnname = NULL | columnname = expression insertvals ::= ( columnlist ) VALUES ( valuelist ) | VALUES ( valuelist ) | ( columnlist ) VALUES ( SELECT select ) | VALUES ( SELECT select ) columnlist ::= columnname , columnlist | columnname valuelist ::= NULL , valuelist | expression , valuelist | expression | NULL selectcols ::= selectallcols * | selectallcols selectlist selectallcols ::= | ALL | DISTINCT where ::= | WHERE boolean having ::= | HAVING boolean boolean ::= and | and OR boolean and ::= not | not AND and not ::= comparison | NOT comparison comparison ::= ( boolean ) | colref IS NULL | colref IS NOT NULL | expression LIKE pattern | expression NOT LIKE pattern | expression IN ( valuelist ) | expression NOT IN ( valuelist ) | expression op expression | EXISTS ( SELECT select ) | expression op selectop ( SELECT select ) | expression IN ( SELECT select ) | expression NOT IN ( SELECT select ) | expression BETWEEN expression AND expression) | expression NOT BETWEEN expression AND expression) TopSpeed ODBC Interface — syntaxpattern ::= string | ? | USER expression ::= expression + times | expression - times | times times ::= times * neg | times / neg | neg neg ::= term | + term | - term term ::= ( expression ) | colref | simpleterm | aggterm | scalar scalar ::= scalarescape | scalarshorthand fn ::= functionname ( valuelist ) | functionname aggterm ::= COUNT ( * ) | AVG ( expression ) | MAX ( expression ) | MIN ( expression ) | SUM ( expression ) | COUNT ( expression ) simpleterm ::= string | realnumber | ? | USER | date | time | timestamp groupby ::= | GROUP BY groupbyterms groupbyterms ::= colref | colref , groupbyterms orderby ::= | ORDER BY orderbyterms orderbyterms ::= orderbyterm | orderbyterm , orderbyterms orderbyterm ::= colref asc | integer asc asc ::= | ASC | DESC colref ::= aliasname . columnname | columnname tablelist ::= tablelistitem , tablelist | tablelistitem tablelistitem ::= tableref | outerjoin outerjoin ::= ojescape | ojshorthand oj ::= tableref LEFT OUTER JOIN tableref ON boolean | tableref LEFT OUTER JOIN oj ON boolean
#1 by МихаилМ
DataBase=\AVTOPROKATDatClien нужен полседний слаш те DataBase=\AVTOPROKATDatClien
#2 by МихаилМ
"select ::= Cli:nm FROM tablelist where groupby having" бред какой то
#3 by jour
возможно и бред, как получить колонку "Cli:nm" ? хотя конечно лучше получить всю таблицу, думаю это  selectallcols ::= | ALL | DISTINCT но я не знаю как передавать эти строчки
#4 by МихаилМ
как обычно. по стандарту sql92. select * from имятаблицы без tps объединения таблиц работают только внутренние через where. мне не удалось заставить работать "LEFT OUTER JOIN"
#5 by Mikeware
Кларион жив?
#6 by МихаилМ
стал   надстрой на мс скл
#7 by Mikeware
забавно. но если надстройка над мелкомягким - почему tps остался? Эх, лет 20 его не видел.... даже 22
#8 by МихаилМ
вот программа , которая смогла работать более менее нормально с этим odbc драйвером
#9 by МихаилМ
наверно какие-то старые базы от 6 клариона.
#10 by jour
Такс.. программа запустилась, таблицу открыл, записи вижу, хорошо, осталось научиться писать запросы :)
#11 by WildSery
#12 by WildSery
или не, даже лучше вот такую поискать
#13 by jour
Спасибо друг :)
#14 by jour
Что то не клеится Таблицу не получаю, хотя в ViewODBC запросы нормально работают
#15 by МихаилМ
зачем же Вы в попытку поместили две разные ситуации подключение к бд и извлечение данных. сделайте культурно разные методы подсключения получения данных создания типизированной тз на основе типов oledb (ado) заполнения тз отображения тз в тп.
#16 by МихаилМ
еще даты в кларе хранятся в виде целых чисел формула  приведения 1800.12.28+число дней клары
#17 by jour
на счет дат я уже давно разобрался, там чуть сложнее чем вы написали
#18 by jour
Культурно я разделял, сначала сделал две функции, по логике вроде должно работать, но не работает. Стал искать проблему, в отладке заметил что в строке подключения к БД не сохраняется значение "Соединение.ConnectionString", устанавливается "Provider=MSDASQL.1;" после открытия. Вторую функцию вообще по строчкам разделил         Таблица.Open; Но не пашет...
#19 by jour
Проблема в том, что я пока не знаю как правильно должно быть, вот и мечусь
#20 by МихаилМ
у меня тоже както не подслючалась и тогда я тоже заметил пропажу. помогла тупо перезагрузка. но так было только раз после перезагрузки , когда все заработало не стал разбираться есть проража или нет.
#21 by МихаилМ
попробуйте такую строку подключения "DRIVER={SoftVelocity Topspeed driver (*.tps)};DBQ=\AVTOPROKATDatClien; Extension = tps;"; вместо DataBase DBQ
#22 by МихаилМ
кстати в программе можно подглядеть строку подключения
#23 by МихаилМ
+ для dsn источника
#24 by jour
А то. что таблицы запаролены - не может никак влиять ?
#25 by МихаилМ
не знаю . подсмотрите в строке поключения dsn, как написано в
#26 by jour
А драйвер можете свой прислать ? Мой не настраивается никак, при попытки редактирования настроек пишет - "Архитектура драйвера и архитектура приложения не соответствуют друг другу"
#27 by МихаилМ
отправляте запрос в на email в ЛК
#28 by МихаилМ
"Архитектура драйвера и архитектура приложения не соответствуют друг другу" если у Вас 64-битная ОС, то правильно пишет. Вы не тот dsn менеджер запускаете. в поиск.
#29 by jour
написал.
#30 by jour
ОС 64-битная, однако одбс драйвера 32х стоят и работают ваш драйвер как на вин 7 поставить ?
#31 by МихаилМ
шаманским способом: в 32 битной ВМ с win XP запустил Process Monitor (PM), запустил setup в PM настроил фильтр. исполнил setup. проанализировал трассы PM и выяснил в какие папки и какие ветки реестра записываются. воспроизвел, применительно к 64 версии odbc ветке реестра и скопировал файлы.
#32 by МихаилМ
+ списки dll и ветки реестра не сохранил.
#33 by Злопчинский
все таки я правильно проинтуичил, что не КлаТион, а Кларион.. ;-) . а сколько в свое время было шуму по Btrieve (вроде так пишется)
#34 by jour
Уже из платформы сделал подключение к внешнему источнику, соединение есть, в конфигураторе таблицы видит, но при выводе выдает Номер ошибки: 10015 Описание: [SoftVelocity Inc.][TopSpeed ODBC Driver]Expected lexical element not found: FROM
#35 by МихаилМ
исходите из того, что если Вы смогли подключиться и получить данные в программе то сможете и в 1с из ADO.
#36 by МихаилМ
нет времени и возможности проверять Ваш драйвер. но мой довольно глючный. И если у них "общие корни" то таблицы в 1с отбражаться (открваться) не будут, но запросы к данным выполняться будут.
#37 by jour
Лан, спасибо
#38 by МихаилМ
если файл , не содержащий большой коммерческой тайны могу проверить, будет ли он читаться.
#39 by ОдинСерый
шаманить ничего не надо берите МС акцесс и делайте коннект оттуда к кларионовским бд. потом и своего 1С запросто зацепитесь в акцессовским база... или если у вас мс скуль тогда еще проще из акцесса кидает в скуль и там прямо отрабатываете своим 1С. акцесс можете просто сделать экзешник который будет кидать данные на скуль по нажатию. и вообще тут масса способов для творчества.
#40 by МихаилМ
Вы подсключались из акцесс к odbc источнику clarion ?
#41 by ОдинСерый
ну ты молодец :))) мс акцесс подключается напрямую ко всем видам дбф-шек никакиз одбс не надо. ну может если не будет в списке конверторов в самом акцесс то ищите библиотечки , хотя в стандартном все должно быть хотя конечно хз я последние акцессы не знаю может и уже нет... ищи старые пакеты
#42 by ОдинСерый
Совместимость Access со сторонними источниками данных[править | править исходный текст] СУБД (Источник данных)    Версия Access    Драйвер    Обновляемые запросы Файлы Excel    все    встроенный    Нет SQLite            Да MySQL    2000-2003    MyODBC v.3.51.X, 5.1.X    Да PostgreSQL            Да Firebird            Да 1C v.7.7 (dbf)    2003    Visual FoxPro ODBC driver v.6.01.8629.01    Нет Paradox             Oracle             Текстовые файлы    все    встроенный    Нет Таблицы html    все    встроенный    Нет клариона нет... но он вообще стандартные файлы дбф
#43 by МихаилМ
не припомню, что бы я с Вами на "ты" переходил. вопрос про подключение - не праздный. тк поключится к кларион и прочитать данные проблема. втом числе из аксес. Не болтайте о том, с чем дело не имели. "клариона нет... но он вообще стандартные файлы дбф" - глупость . кларион не хранил данные в дбф.
#44 by Chai Nic
"кларион не хранил данные в дбф" Некоторые путают кларион с клиппером
#45 by ОдинСерый
читать надо на форуме иногда. да я перепутал видимо кларион с чем-то из тех кто напрямую поддерживает форматы файлов xBase
#46 by Salimbek
И что по ссылке хорошего?
#47 by ОдинСерый
направление движения для тс дает. кларион наверно давно умер думаю все равно где-то в сети есть приблуды для цепляния его данных в другие выжившие СУБД. почему я акцесс привел в пример?! да потому что он был есть и будет, в отличие от остальные живших, умерших и трансформировашихся старых СУБД.
#48 by МихаилМ
читате внимательно "Единоразово уже умею получать данные путем конвертации таблиц в *.csv" нет задачи "епляния его данных в другие выжившие СУБД".
#49 by K-5
а может скриптом это автоматизировать?
#50 by K-5
+ "Единоразово уже умею получать данные путем конвертации таблиц в *.csv"
#51 by Капитан Смоллет
Кларион жив.
#52 by Капитан Смоллет
#53 by jour
Заснуть сегодня не смог, закрываю глаза и вижу таблицы :) для истории: таким образом вытаскиваются все записи. Дальше план такой, делаю регламентное задание для вытаскивания новых записей, все вытащенное запихиваю в промежуточную таблицу MSSQL и ее уже подключаю как внешний источник данных в 1С. Может советы дельные может дать ? сложностей умозрительно пока не вижу.
#54 by МихаилМ
опять бред. создайте dsn для подключения к базе, а не к файлу. и работайте с ним из ado. впрочем если соединять таблицы не собираетесь - сойдет и подключение к таблице. RecordSet.Fields(RecordSet.Fields.Item.Name) тоже быдло код. могу еще более бредовый идею подать из мс скл сделать подключения к кларе  затем подключится к мс скл.
#55 by jour
у меня одна из управленческих программ работает в этих таблицах, и сотрудники несколько раз пишут одно и тоже - сначала в эту старую, потом в 3 разные 1С (данные связаны но не одинаковые). Данных довольно много, одну и туже работу по четыре раза делать глупо, но необходимо, чтобы данные, имеющиеся в tps таблицах были доступны в нескольких 1С. Я согласен, что можно просто из dsn подключения брать данные, но мне где то нужно хранить историю, что я взял а что не взял, влазить в типовые 1С не хочется. На счет быдло кода.. покажите пример хорошего :)
#56 by jour
а как из МС СКЛ подключиться к кларе ????
#57 by МихаилМ
правильно RecordSet.Fields по поводу синхронизации: все равно равно нужно учитывать не только новые данные, но и измененные. так что придется  сравнивать таблицы текущую  и с копией для выявления новых и измененных вечером (в ~22 00) покажу. сейчас нет времени разбираться.
#58 by МихаилМ
реализуется через OPENDATASOURCE только на сервере должно быть разрешение его использования
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С