1

Тема: AHK: ADODB + ODBC Paradox

Использую ADOSQL http://www.autohotkey.com/board/topic/8 … ons-v503l/.
Код:


#Include SQL.AHK

ConnectString:="Driver={Driver do Microsoft Paradox (*.db)};DefaultDir=C:\DB;Password=jIGGAe"

Query:=("
(
select * from CHECK.DB
where Cnum = 1
)")

ObjectReturn := ADOSQL(ConnectString , Query)


MsgBox, _%ADOSQL_LastError%_

Loop % ObjectReturn.MaxIndex()
Msgbox % ObjectReturn[A_Index,1]

При этом варианте запроса все отрабатывает отлично.
Но как только меняю запрос на


Query:=("
(
select * from CHECK.DB
where LogicDate = "11.11.2013"
)")

Выдает ошибку Недопустимое имя ". Проверьте что оно не содержит недопустимые символы.

Проблема возникает и при запросе с текстовыми данными:

where name = "UNIT"

Что делать? Заранее спасибо.

2

Re: AHK: ADODB + ODBC Paradox

Попробуйте без кавычек:

where LogicDate = 11.11.2013

3 (изменено: chippp, 2013-11-13 10:48:08)

Re: AHK: ADODB + ODBC Paradox

Попробовал:
Число содержит синтаксическую ошибку в выражении запроса 'LogicDate = 11.11.2013'

Любые текстовые данные или Date должны быть заключены в кавычки

4

Re: AHK: ADODB + ODBC Paradox

Тогда, может, так:

Query =
(
select * from CHECK.DB
where LogicDate = "11.11.2013"
)

Ещё можно попробовать в оригинальном варианте заменить := на =

5

Re: AHK: ADODB + ODBC Paradox

Попробовал:
Недопустимое имя ". Проверьте что оно не содержит недопустимые символы.

6

Re: AHK: ADODB + ODBC Paradox

chippp пишет:

Попробовал:

Что именно?

7 (изменено: Alectric, 2013-11-13 14:29:07)

Re: AHK: ADODB + ODBC Paradox

Может в скобки нужно взять, как это с "if" делается?...

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

8

Re: AHK: ADODB + ODBC Paradox

Или в одну строчку написать? Короче, надо знать, что там допустимо, а что нет в этих запросах, а я, честно говоря, не в курсе.

9 (изменено: Irbis, 2013-11-13 18:40:08)

Re: AHK: ADODB + ODBC Paradox

Что-то мне подсказывает, что все дело в двойных кавычках.

Query:=("
(
select * from CHECK.DB
where LogicDate = '11.11.2013'
)")

10 (изменено: chippp, 2013-11-13 20:58:07)

Re: AHK: ADODB + ODBC Paradox

При использовании одинарных ковычек - неверный тип данных.

Пробовал и этот вариант. Ошибка такая же.

Query =
(
select * from CHECK.DB
where LogicDate = "11.11.2013"
)

При этом через стороннюю утилу  запрос вида

select * from CHECK.DB
where LogicDate = "11.11.2013"

выполняется на ура

11

Re: AHK: ADODB + ODBC Paradox

Тогда надо смотреть, что там автор SQL.AHK наваял.

12 (изменено: Alectric, 2013-11-14 17:38:49)

Re: AHK: ADODB + ODBC Paradox

Я понял... Здесь точки воспринимаются как "дописывание" или еще как-то: "11.11.2013".
Судя по справке:

queryEnum := wmi.ExecQuery(""
        . "Select * from Win32_Process where ProcessId=" . pid)
        ._NewEnum()
Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

13

Re: AHK: ADODB + ODBC Paradox

Внутри кавычек это просто точки. И что за дописывание? Если конкатенация, то по бокам от точки пробелы должны быть.

14

Re: AHK: ADODB + ODBC Paradox

Попробовал использовать еще AHK DBA - OOP Database Access Framework for AutoHotkey, результат тот же самый, что-то не то с кавычками

15

Re: AHK: ADODB + ODBC Paradox

Есть идеи господа ?

16

Re: AHK: ADODB + ODBC Paradox

Может:

LogicDate = "11`.11`.2013"
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: ADODB + ODBC Paradox

Таже самая ошибка

18

Re: AHK: ADODB + ODBC Paradox

Собственно суть проблемы кажется понял, осталось разобраться как решить.  Судя по всему надо через параметры передавать текстовые данные.