full_lamer |
Отправлено: 09.04.2005, 21:17 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
доброго времени суток.
у меня возникла небольшая проблема при попытке добавить запись посредством SQL-запроса в БД.
Используемые компоненты:
ADOConnection
ADOQuery
Текст запроса, вызывающий ошибку:
CODE | insert table1 (field1, field2) values (1, '\" <2:9>') |
ошибка звучит примерно так:
QUOTE | Неверно определен объект Parameter. Представлены несовместимые или неполные сведения |
а значение свойства 'Name' у 'Parameter' — равно ':9>'... помогите пожалуста разобраться....
|
|
olegenty |
Отправлено: 10.04.2005, 14:33 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
напиши так:
SQL | insert table1 (field1, field2) values (:Param1, :Param2)
|
сходи в св-во Parameters объекта ADOQuery, и выстави типы параметров (для второго — ftString с соответствующей длиной)
затем, перед выполнением запроса:
CODE |
ADOQuery->Parameters->ParamByName("Param1")->Value = 1;
ADOQuery->Parameters->ParamByName("Param2")->Value = "\" <2:9>";
|
и далее выполняй запрос.
|
|
full_lamer |
Отправлено: 11.04.2005, 07:37 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
это конечно я знаю... только небольшая проблемка:
эти пресловутые символы ":цифра", попадаются в огромных строках по 300 — 1000 символом, и оно может встретиться где угодно... а запросы формируются автоматом, простой конкатинацией строк и чисел... вот поентому возиться с параметрами очень трудоемкий процесс, а к то тому эта комбинация может встречаться по несколько раз на строку...
я пока просто устраняю эти символы... из строк, большой потери не наблюдается, просто времени в обрез...
|
|
AVC |
Отправлено: 11.04.2005, 10:09 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Можно попытаться иначе закодировать двоеточие (например Sybase позволяет передавать символы 16-ти ричным кодом) или отказаться от двоеточия, заменив его другим символом.
Вам мешает ADO'шный анализатор текста запроса. Сумеете его "обмануть" — все получится. Может попробовать поэкспериментировать с Prepared? На первый взгляд должно получиться. |
|
olegenty |
Отправлено: 11.04.2005, 15:53 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
не понимаю, что мешает конкатенировать автоматически — в параметры. в упор проблемы не вижу, если честно. DSQL вообще большое зло, если честно. для MSSQL — в том числе.
|
|
full_lamer |
Отправлено: 12.04.2005, 07:43 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
2olegenty
QUOTE | DSQL вообще большое зло |
а чем пользоваться то еще?
QUOTE | в упор проблемы не вижу |
небольшая проблема — время — пока тот алгоритм, который уже есть работает, а занимаюсь другими частями проекта... как только появиться время перепишу модуль...
|
|
full_lamer |
Отправлено: 12.04.2005, 08:44 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
тогда у меня возникает новый вопрос:
а если таких комбинация " :цифра " будет несколько?
|
|