Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт мар 29, 2024 01:59

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 11 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Работа с SQL
СообщениеДобавлено: Пт май 31, 2013 08:46 
Не в сети
Аватара пользователя

Регистрация: Сб дек 06, 2008 10:45
Сообщения: 83
Откуда: Благовещенск
Сделал Recordset с текстом SQL такого содержания:
Код:
SELECT Procedures.Date_procedure, Procedures.Bath_mineral, Procedures.Bath_herb, Procedures.Shower_intestinal, Procedures.Hydromassage, Procedures.Aerovanny, Procedures.Shower_power, Procedures.Shower_circular, Procedures.Shower_ascending
FROM Procedures
WHERE (((Procedures.Date_procedure)=myDate));

myDate задается как параметр.

При попытке соединения к БД в самом супервайзере появляется ошибка:
Код:
Source:
ADO

Description:
Unknown error has occurred


Жмешь по кнопке Close появляется след ошибка:
Код:
Source:
Microsoft OLE DB Provider for ODBC Drivers

Description:
[Microsoft][Драйвер ODBC Microsoft Access] Ошибочная
инструкция SQL; предполагалось 'DELETE', 'INSERT',
'PROCEDURE', 'SELECT' или 'UPDATE'.


Снова жмешь по кнопке Close появляется след ошибка:
Код:
Source:
Microsoft OLE DB Provider for ODBC Drivers

Description:
[Microsoft][Драйвер ODBC Microsoft Access] Слишком
мало параметров. Требуется 1.


И в итоге в супервайзере всё таки подключается к БД.

Что не так не пойму.
Также при запуске рантайма выдает ошибку, что не может открыть базу.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пт май 31, 2013 10:32 
Не в сети
Аватара пользователя

Регистрация: Сб дек 06, 2008 10:45
Сообщения: 83
Откуда: Благовещенск
или каким еще образом можно вытащить из БД одну запись по с заданным значением даты, одного из полей?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пт май 31, 2013 10:54 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Я не пробовал цепляться к базе с помощью SQL запроса
вместе с супервайзором идёт пример Database. посмотрите как там сделано, только возможно пути к источникам данных поправить придётся.

Записей на дату может быть несколько, самое простое отфильтровать нужное командой DBExecute( база, "Filter", текст фильтра )
здесь в Downloads для супервайзора есть пример в котором записи по дате и тексту вытаскиваются.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пт май 31, 2013 12:31 
Не в сети

Регистрация: Пт июл 01, 2011 07:15
Сообщения: 32
Откуда: Ижевск
Миханик писал(а):
Сделал Recordset с текстом SQL такого содержания:
Код:
SELECT Procedures.Date_procedure, Procedures.Bath_mineral, Procedures.Bath_herb, Procedures.Shower_intestinal, Procedures.Hydromassage, Procedures.Aerovanny, Procedures.Shower_power, Procedures.Shower_circular, Procedures.Shower_ascending
FROM Procedures
WHERE (((Procedures.Date_procedure)=myDate));

myDate задается как параметр.

При попытке соединения к БД в самом супервайзере появляется ошибка:
Код:
Source:
ADO

Description:
Unknown error has occurred



Попробуйте упростить текст рекордсета :
Код:
SELECT * FROM Procedures


а запрос параметров из базы осуществляйте из скрипта при помощи конструкции на вроде:
Код:
DBClose( "Connection1.Procedures" )
SQL = "SELECT * FROM Procedures where Date_procedure =  '"+ myDate + "' "
call DBExecute( "Connection1.Procedures", "Source", SQL )
DBOpen( "Connection1.Procedures" )


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пн июн 03, 2013 04:44 
Не в сети
Аватара пользователя

Регистрация: Сб дек 06, 2008 10:45
Сообщения: 83
Откуда: Благовещенск
Олег
спасибо, чуть позже посмотрю

AndyRay
спасибо, Ваш вариант сработал


И еще впорос, который меня уже давно мучает и я всё никак не разберусь:

Если я создаю Connection и добавляю RecordSet, то потом при открытии командой DBOpen("Connection1.RecordSet1") появляется ошибка и БД не открывается..
Текст ошибки:
Код:
Faled to open Recordset: Connection1.RecordSet1
Execotion of function: DBOpen Failed !


А если полностью открывать Connection1 командой DBOpen("Connection1"), а в RecordSet1 поставить галочку "открывать при подключении", то все нормально открывается.
Из-за чего такое может быть?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пн июн 03, 2013 07:28 
Не в сети

Регистрация: Пт июл 01, 2011 07:15
Сообщения: 32
Откуда: Ижевск
Миханик писал(а):
Олег
спасибо, чуть позже посмотрю

AndyRay
спасибо, Ваш вариант сработал


И еще впорос, который меня уже давно мучает и я всё никак не разберусь:

Если я создаю Connection и добавляю RecordSet, то потом при открытии командой DBOpen("Connection1.RecordSet1") появляется ошибка и БД не открывается..
Текст ошибки:
Код:
Faled to open Recordset: Connection1.RecordSet1
Execotion of function: DBOpen Failed !


А если полностью открывать Connection1 командой DBOpen("Connection1"), а в RecordSet1 поставить галочку "открывать при подключении", то все нормально открывается.
Из-за чего такое может быть?

На вскидку сложно сказать...Можно увидеть параметры, с которыми создан рекордсет?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пн июн 03, 2013 08:48 
Не в сети
Аватара пользователя

Регистрация: Сб дек 06, 2008 10:45
Сообщения: 83
Откуда: Благовещенск
вот действующий RecordSet и не важно что выбирать в качестве источника Table Name или SQL Text:


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Пн июн 03, 2013 10:14 
Не в сети

Регистрация: Пт июл 01, 2011 07:15
Сообщения: 32
Откуда: Ижевск
Из практики ошибка
Код:
Execution of function: DBOpen Failed !

может возникать при недоступности источника данных(изменилось название\структура таблицы, с которой связан рекордсет к примеру).
Рекомендую проверить на корректность текст SQL запросов, которые отправляются к БД.
Можно воспользоваться профайлером AnjLab SQLProfiler http://anjlab.com/ru/projects/opensource/sqlprofiler

Так же перед изменением источника данных рекордсета командой
Код:
call DBExecute( "Connection1.Procedures", "Source", SQL )

рекордсет необходимо закрыть.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Вт ноя 27, 2018 11:44 
Не в сети

Регистрация: Ср ноя 07, 2018 14:39
Сообщения: 4
Сделал Recordset c SQL текстом такого содержания:

SELECT * FROM tect where KOD=324542

При открытие Recordset, все отлично он связывается с базой данных и выводит нужную строчку, а если меняю содержимое Recordset:

SELECT * FROM tect

А скриптом пытаюсь задать запрос к базе данных:

DBClose( "Connection2.Recordset1" )
SQL = "SELECT * FROM tect where KOD=324542 "
call DBExecute( "Connection2.Recordset1", "Source", SQL )
DBOpen( "Connection2.Recordset1" )

Выдает ошибки:
Faled to open Recordset: Connection2.Recordset1
Execotion of function: DBOpen Failed !

Может ли на это влиять что версия CX-Surervisor Trial?
Или может в самой базе какие то разрешения надо включить? (MS SQL 2008)


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Чт ноя 29, 2018 00:14 
Не в сети

Регистрация: Ср июн 15, 2011 11:20
Сообщения: 91
Откуда: UA
а может сначала надо открыть (open) соединение, а потом вызвать (execute) запрос?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа с SQL
СообщениеДобавлено: Чт ноя 29, 2018 08:07 
Не в сети

Регистрация: Ср ноя 07, 2018 14:39
Сообщения: 4
Все спасибо разобрался, причина была в том, что переменная

SQL = "SELECT * FROM tect where KOD=324542 "

была не текстового формата, я видимо не заметил этого когда выбирал ее.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 11 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3