![]() |
|
![]() ![]() ![]() |
|
Гость_Boris |
|
|||
Unregistered |
Добрый день!
Есть MSSQL, Delphi, TADOQuery, Запрос на создание DB Если используется БЕЗ параметров: CREATE DATABASE DB_COM ON (NAME = COM_DATA, FILENAME = "D:\MSSQL7\Data\COM\DB_COM_Data.MDF" ) то все работает нормально. НО, если я использую параметрический запрос CREATE DATABASE DB_COM ON (NAME = COM_DATA, FILENAME = :s ) то выдается ошибка "Incorrect syntax near '@P1'" Причем, и в Run и в Design-Time Причем, этот же запрос, только с использованием BDE работает нормально Если в этот же TADOQuery, поместить запрос типа select * from Table where Field1 = :s, то все работает нормально. С чем бы это могло быть связано? |
|||
|
||||
BSV_Sergey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 19.11.2004 Где: г. Москва Репутация: нет Всего: 3 |
Если работает Select но не работает Create то может ты используешь ADOQuery.Open; Если да то замени на ExecSQL. Если ошибка генерится не по этому, то ее можно обойти: сформаровать строку скрипта создающего базу програмно в какой нибудь string переменной к примеру sSQL. Тогда текст будет выглядеть примерно так:
Если в ADOQuery параметры соединения с сервером введены верно - должно сработать. Это сообщение отредактировал(а) BSV_Sergey - 9.12.2004, 10:24 |
|||
|
||||
Гость_Boris |
|
|||
Unregistered |
Используется именно ADOQuery.ExecSQL
sSQL := 'CREATE ..........' нежелательно использовать, поскольку в имени файла могут быть кавычки, и в этом случае будет выдана ошибка. Собственно, именно по этой причине есть потребность использовать параметрический запрос |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Господа, вам не кажется, что тема явно относится к Delphi. Реальной работы самой базы данных тут нет.
|
|||
|
||||
BSV_Sergey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 19.11.2004 Где: г. Москва Репутация: нет Всего: 3 |
Гость_Boris Можно попробовать перед прибавлением к строке с командой на создание БД имени файла, организовать его проверку. В цыкле посимвольно пройти всю строку с именем файла и при обнаружении символа (') заменить его на ('') .
Отформатированное имя файла добавить в строку команды создания БД. Способ конечно не самый красивый, но практически должен сработать. А возможно кто нибудь сможет подсказать почему выдается ошибка и ситуация гораздо упроститься. AntonSaburov Данная тема бесусловна должна быть в разделе Delphi. Надеюсь кто нибуть сможет ее туда перенести. |
|||
|
||||
Гость_Boris |
|
|||
Unregistered |
Да, наверное, так и придется поступить
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |