Вверх ↑
Этот топик читают: Гость
Ответов: 59
Рейтинг: 0
#1: 2021-12-26 00:23:20 ЛС | профиль | цитата
Сделал приложение с формой в которой выполняется подключение к базе и вставка строки. Все работает.
Сделал фоновое приложение с теми же компонентами, только уже без интерфейса. Подключение к базе выполняется, а вот вставка строки уже нет. Почему? Это запрещено? Или нужен какой-то хитрый способ?


Add(Service,2953706,77,140)
{
link(onStart,14574635:doEvent1,[(153,146)(153,97)])
}
Add(DS_ODBC,7847000,539,231)
{
Name="oracle_connection"
Point(onError)
link(onCreate,15326055:doQuery,[])
link(Driver,3601739:Value,[])
}
Add(Memory,3601739,539,175)
{
Default=String()
}
Add(DSC_Query,15326055,609,231)
{
DSManager="oracle_connection"
link(onQuery,16321824:doStr,[])
link(SQL,6182330:Part9,[(615,125)(545,125)])
}
Add(dbMySQL,3482916,511,112)
{
Host=""
Charset=5
link(Host,6182330:Part5,[])
link(Login,6182330:Part6,[])
link(Password,6182330:Part7,[])
link(DBName,6182330:Part8,[])
}
Add(Hub,14574635,196,91)
{
OutCount=3
link(onEvent1,4940459:doOpen,[(220,97)(220,48)])
link(onEvent2,3482916:doOpen,[(360,104)(360,118)])
link(onEvent3,7847000:doOpen,[(374,111)(374,237)])
}
Add(MT_String,16321824,658,231)
{
Delimeter=","
link(onResult,6046487:doSplit,[])
}
Add(dbMySQL_Query,2588032,511,350)
{
link(dbHandle,3482916:dbHandle,[])
}
Add(FormatStr,3010452,714,287)
{
DataCount=4
Mask="INSERT INTO test.t1 VALUES('%1','%2','%3','%4');"
link(onFString,2588032:doQuery,[(758,293)(758,325)(499,325)(499,356)])
link(Str1,6046487:Part1,[])
link(Str2,6046487:Part2,[])
link(Str3,6046487:Part3,[])
link(Str4,6046487:Part4,[])
}
Add(MultiStrPart,6046487,714,231)
{
Char=","
Count=4
link(onSplit,3010452:doString,[(758,237)(758,265)(702,265)(702,293)])
}
Add(FormatStr,14159189,483,175)
{
DataCount=4
Mask="Driver={%1};Server=%2;Uid=%3;Pwd=%4;"
link(onFString,3601739:doValue,[])
link(Str1,6182330:Part1,[])
link(Str2,6182330:Part2,[])
link(Str3,6182330:Part3,[])
link(Str4,6182330:Part4,[])
}
Add(MultiStrPart,6182330,483,42)
{
Char=","
Count=10
link(onSplit,14159189:doString,[(555,48)(555,108)(471,108)(471,181)])
}
Add(DSC_Query,3723767,371,42)
{
SQL="select * from 'or';"
DSManager="sqlite_connection"
link(onQuery,11540497:doStr,[])
}
Add(DS_SQLite,4940459,231,42)
{
Name="sqlite_connection"
FileName="config.db3"
Charset=1
Point(onError)
link(onOpen,11760390:doExec,[])
}
Add(DSC_Exec,11760390,287,42)
{
SQL="create table if not exists "or" (\r\n o_driver TEXT,\r\n o_host TEXT,\r\n o_user TEXT,\r\n o_pass TEXT,\r\n m_host TEXT,\r\n m_user TEXT,\r\n m_pass TEXT,\r\n m_db TEXT,\r\n o_zap TEXT,\r\n m_zap TEXT\r\n);"
DSManager="sqlite_connection"
link(onExec,3723767:doQuery,[])
}
Add(MT_String,11540497,427,42)
{
Delimeter=","
link(onResult,6182330:doSplit,[])
}

карма: 0

0
Ответов: 59
Рейтинг: 0
#2: 2021-12-26 15:42:57 ЛС | профиль | цитата
Добавил элемент сервер. Удаленно выполнил подключение к базе. Подключилось. А вот запрос все равно не выполняется. Как узнать почему?
карма: 0

0
Ответов: 783
Рейтинг: 168
#3: 2021-12-26 15:48:01 ЛС | профиль | цитата
LeoN писал(а):
А вот запрос все равно не выполняется. Как узнать почему?

Возможно, в папке с программой нет файла - sqlite3.dll

Извини за глупый вопрос. Зачем использовать в одной программе 3 разных базы данных: sqlite -> oracle -> MySQL?

Редактировалось 1 раз(а), последний 2021-12-26 15:52:35
карма: 15

0
Ответов: 59
Рейтинг: 0
#4: 2021-12-26 16:31:39 ЛС | профиль | цитата
Gunta писал(а):

LeoN писал(а):
А вот запрос все равно не выполняется. Как узнать почему?

Возможно, в папке с программой нет файла - sqlite3.dll

Извини за глупый вопрос. Зачем использовать в одной программе 3 разных базы данных: sqlite -> oracle -> MySQL?

Редактировалось 1 раз(а), последний 2021-12-26 15:52:35

ох..это я валенок..забыл про этот файл. попробую добавить его. суть такая. Если сервер с Oracle туда заносятся автоматически данные с приборов учета(АСКУЭ), есть другой сервер с базой MariaDB, на ней другая база. И вот из одной базы нужны данные в другой базе. Чтобы вручную их не переносить пытаюсь сделать фоновое приложение по автоматическому переносу данных из одной бд в другую. Ну SQLLite для хранения данных авторизации, чтобы каждый раз не перекомпилировать приложение

--- Добавлено в 2021-12-26 17:14:20

Дело не в sqlite3.dll. Файл лежит, без него даже в бд не подключилось бы

Редактировалось 1 раз(а), последний 2021-12-26 17:14:20
карма: 0

0
Ответов: 4628
Рейтинг: 749
#5: 2021-12-26 19:58:13 ЛС | профиль | цитата
LeoN писал(а):
Добавил элемент сервер

Если имеется в виду компонент TCP_Server, то он не работает в неоконных приложениях. Можно попробовать альтернативный.
карма: 26

0
Ответов: 59
Рейтинг: 0
#6: 2021-12-26 20:20:15 ЛС | профиль | цитата
Netspirit писал(а):

LeoN писал(а):
Добавил элемент сервер

Если имеется в виду компонент TCP_Server, то он не работает в неоконных приложениях. Можно попробовать альтернативный.

Все отлично работает. Из оконного клиента посылаю пакет и безоконном сервере пакет принимается
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#7: 2021-12-26 23:32:41 ЛС | профиль | цитата
Netspirit писал(а):
Если имеется в виду компонент TCP_Server, то он не работает в неоконных приложениях

LeoN писал(а):
Все отлично работает. Из оконного клиента посылаю пакет и безоконном сервере пакет принимается

TCP_Server создает собственное окно обработки сообщений в модуле TCP, те приложение уже не будет фоновым, а будет оконным со скрытым окном.
карма: 22

0
Ответов: 59
Рейтинг: 0
#8: 2021-12-28 16:14:36 ЛС | профиль | цитата
Решением моей проблемы стало использование консольного приложения. В нем отправка запроса работает. А вот в фоновом и сервисе нет.
карма: 0

0
Ответов: 4628
Рейтинг: 749
#9: 2021-12-30 18:40:39 ЛС | профиль | цитата
nesco писал(а):
TCP_Server создает собственное окно обработки сообщений в модуле TCP
А цикл выборки сообщений из очереди этого окна, как это делает KOL.Run() - кто запустит в консольном приложении или сервисе?
карма: 26

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#10: 2021-12-30 19:06:52 ЛС | профиль | цитата
Netspirit писал(а):
А цикл выборки сообщений из очереди этого окна, как это делает KOL.Run() - кто запустит в консольном приложении или сервисе?

Сейчас уже не вспомню, но в сервисе, ЕМНИП, как-то запускали выборку оконных сообщений.

Редактировалось 2 раз(а), последний 2021-12-30 19:07:53
карма: 22

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)