Имя: Пароль:
1C
1С v8
Просмотр журнала регистрации 1С в формате SQLLite сторонними программами?
0 pvase
 
16.07.19
17:34
Здравствуйте. Может есть у кого какая-то разработка для просмотра данных базы SQLLite? Интересует больше просмотр структуры и типов столбцов чем просмотр данных. Т.е. надо какая-то программа, которая покажет типы столбцов в этой базе данных. Спасибо.
1 МихаилМ
 
16.07.19
17:38
adox
2 Максим Нижегородец
 
16.07.19
17:48
(0) Скорей всего типы полей будут аналогичными как в журнале регистрации (число, стока, дата, булево). Других не будет. Делаешь запрос "SELECT TOP 1000 * FROM [ИмяТаблицы]" смотришь содержимое.
3 bolero
 
16.07.19
17:55
1Cv8Log $ sqlite3 1Cv8.lgd
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE EventLog (
            rowID INTEGER PRIMARY KEY AUTOINCREMENT,
            severity INTEGER,
            date INTEGER,
            connectID INTEGER,
            session INTEGER,
            transactionStatus INTEGER,
            transactionDate INTEGER,
            transactionID INTEGER,
            userCode INTEGER,
            computerCode INTEGER,
            appCode INTEGER,
            eventCode INTEGER,
            comment TEXT,
            metadataCodes TEXT,
            sessionDataSplitCode INTEGER,
            dataType INTEGER,
            data TEXT,
            dataPresentation TEXT,
            workServerCode INTEGER,
            primaryPortCode INTEGER,
            secondaryPortCode INTEGER
        );
CREATE TABLE EventLogMetadata (
            eventLogID INTEGER,
            metadataCode INTEGER
        );
CREATE INDEX EventLog_idx_transaction ON EventLog (transactionDate, transactionID);
CREATE INDEX EventLog_idx_date ON EventLog (date);
CREATE INDEX EventLog_idx_data_date ON EventLog (dataType, data, date);
CREATE INDEX EventLog_idx_userCode_date ON EventLog (userCode, date);
CREATE INDEX EventLog_idx_sessionDataSplitCode_date ON EventLog (sessionDataSplitCode, date);
CREATE INDEX EventLogMetadata_idx_eventLogID ON EventLogMetadata (eventLogID);
CREATE TABLE UserCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, uuid TEXT);
CREATE TABLE ComputerCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE AppCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE EventCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE MetadataCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, uuid TEXT);
CREATE TABLE WorkServerCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE PrimaryPortCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE SecondaryPortCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);
CREATE TABLE SessionParamCodes (code INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, uuid TEXT);
CREATE TABLE SessionUsers (
                    sessionParamCode INTEGER,
                                          sessionValCode INTEGER,
                                            code INTEGER
                                                     );
CREATE TABLE SessionHosts (
                    sessionParamCode INTEGER,
                                          sessionValCode INTEGER,
                                            code INTEGER
                                                     );
CREATE TABLE SessionDataSplits (
                    sessionParamCode INTEGER,
                                          sessionValCode INTEGER,
                                            code INTEGER
                                                     );
CREATE TABLE SessionDataCodes (
                    sessionParamCode INTEGER,
                                          sessionValCode INTEGER,
                                            dataType INTEGER,
                                                  data TEXT
                                                      );
CREATE TABLE ComputerToUserCodes (
                    computerCode INTEGER,
                                                 userCode INTEGER
                                                    );
sqlite>
4 pvase
 
16.07.19
17:57
Как раз в типах полей и проблема. Делаю простой пакет для SQL Server Integration Services и получаю ошибку:
Ошибка: 0xC002F446 в Загрузка AppCodes, Назначение "OLE DB" [20]: Ошибка при задании привязки для столбца "Name". Состоянием привязки было "DT_NTEXT". Тип столбца потока данных - "DBBINDSTATUS_UNSUPPORTEDCONVERSION". Преобразование из типа OLE DB "DBTYPE_IUNKNOWN" в тип целевого столбца "DBTYPE_WVARCHAR" может не поддерживаться данным поставщиком.

Похоже что SQL Server не может понять тип ΤΕΧΤ, и ему надо как то подсказать, что это nvarchar, но как?
5 pvase
 
16.07.19
17:58
Суть задачи - перетащить данные из SQLLite в MSSQL.
6 pvase
 
16.07.19
17:58
+ по возможности с помощью SQL Server Integration Services.
7 bolero
 
16.07.19
18:05
(5) задача правильная и полезная, готового решения в интернетах не видел. Сам хотел в postgres сбрасывать старые логи и уменьшать размер текущего журнала, но руки сделать не доходят. Если буду делать - то через программу-посредник, а не хранимые процедуры.

(6) вот MSSQL и OLE - точно не ко мне. Врядли кто тебе даст нормальные дрова для sqlite, если стандартные из поставки москрософта обвалились на типе TEXT.
8 pvase
 
16.07.19
18:10
Решение найдено. надо было добавить "Преобразование данных" и выбрать преобразование "Строка в Юникоде [DT_WSTR]". Процесс пошел. По результатам, если все получиться - опишу, как сделать.