Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TADOQuery и параметры, ADO и MSSQL 
:(
    Опции темы
Гость_Boris
Дата 9.12.2004, 09:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 9.12.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 19.11.2004
Где: г. Москва

Репутация: нет
Всего: 3



Если работает Select но не работает Create то может ты используешь ADOQuery.Open; Если да то замени на ExecSQL. Если ошибка генерится не по этому, то ее можно обойти: сформаровать строку скрипта создающего базу програмно в какой нибудь string переменной к примеру sSQL. Тогда текст будет выглядеть примерно так:
Код

sSQL := 'CREATE ..........'
ADOQuery1.SQL.Cleare;
ADOQuery1.SQL.Add(sSQL);
ADOQuery1.ExeсSQL;

Если в ADOQuery параметры соединения с сервером введены верно - должно сработать.

Это сообщение отредактировал(а) BSV_Sergey - 9.12.2004, 10:24
PM MAIL   Вверх
Гость_Boris
Дата 9.12.2004, 14:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Используется именно ADOQuery.ExecSQL

sSQL := 'CREATE ..........' нежелательно использовать,
поскольку в имени файла могут быть кавычки,
и в этом случае будет выдана ошибка.
Собственно, именно по этой причине
есть потребность использовать параметрический запрос


  Вверх
AntonSaburov
Дата 9.12.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Господа, вам не кажется, что тема явно относится к Delphi. Реальной работы самой базы данных тут нет.
PM MAIL WWW ICQ   Вверх
BSV_Sergey
Дата 9.12.2004, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 19.11.2004
Где: г. Москва

Репутация: нет
Всего: 3



Гость_Boris Можно попробовать перед прибавлением к строке с командой на создание БД имени файла, организовать его проверку. В цыкле посимвольно пройти всю строку с именем файла и при обнаружении символа (') заменить его на ('') .
Отформатированное имя файла добавить в строку команды создания БД.
Способ конечно не самый красивый, но практически должен сработать.
А возможно кто нибудь сможет подсказать почему выдается ошибка и ситуация гораздо упроститься.

AntonSaburov Данная тема бесусловна должна быть в разделе Delphi. Надеюсь кто нибуть сможет ее туда перенести.
PM MAIL   Вверх
Гость_Boris
Дата 9.12.2004, 16:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да, наверное, так и придется поступить
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.