Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Различия синтаксиса SQL


Автор: ТоляМБА 15.12.2004, 14:07
Скорее всего ответ будет длинным, поэтому согласен на ссылки, тем более думаю, что вопрос возникал не только у меня.
Начальник дает мне задания по обработке (выборка, удаление и пр.) таблиц формата .DBF. С SQL занимаюсь недавно. Делаю следующее:
1. перегоняю таблицы на MS-SQL Server 2000 и с помощью
VIEWS
// (помогает визуально создавать выборки)
и Query Analizer
//(проверка работоспособности, кол-ва строк результата и синтаксиса. (Например если вы в QA написали неправильно столбец, вам будет выдано сообщение типа: такого столбца(поля) нет, а если вы такой ляп допустили в Delphi & ADO вым будет написано что-то типа: слишком мало параметров. И сиди думай в чем дело))
выполняю задания.
2. Все запросы из QA естественно сохраняю в файлы.
3. Запускаю Delphi, подцепляюсь через ADO к .DBF файлам и переношу SQL-запросы на ADOCommand или ADOQuery. Делаю прогон Дэлфи матерится на синтаксис. Во-первых в ADO почему то нельзя писать в SQL-коде комментарии (-- или /* */), во-вторых по сообщению об ошибке нельзя понять из-за чего она (см. выше про параметры).
smile
Где можно найти хэлпы по SQL синтаксису в АДО Дэелфи.

А то мне пришлось делать на каждую команду таблицу типа:

SQL Server
UPDATE Vtor
SET vtor.four=perv.two/100
from Vtor
INNER JOIN Perv
ON (Perv.one = Vtor.three)


Delphi ADO SQL for .DBF
UPDATE "Vtor.dbf" Vtor

INNER JOIN "Perv.dbf" Perv
ON (Perv.one = Vtor.three)
SET vtor.four=perv.two/100

Это еще самая короткая.
На перенос каждой команды с SQL Server в АДО убивается по полдня а то и по дню, а время не терпит да еще команд и ситуаций непройденных впереди много. Понимаю, что все команды мне писать никто не будет, поэтому согласен на ссылки smile (Сибирь не предлагать).





Автор: Bes 15.12.2004, 14:28
У меня была похожая ситуация,...
Так, только я не понял зачем нужно было все перегонять на сервак для отладки?
Ну вообщем в моем случае dbf-ные файлы не использовались никем и представляли собой только хранилище данных для обработки поэтому я их конвертнул на СКУЛ сервер 2000 там все сделал и потом обратно.
Вот, а еще мне кажется что если подключиться через БДЕ то вот этих вот кавычек писать не придется должно прокатить также как и скуловском запросе только надо чтобы файлы лежали в одной папке.
Если я чего недопонял - уточняй.

Автор: Akina 15.12.2004, 14:31
Вообще-то АДО конкретно до звезды кто его зовет - Дельфа или там еще кто...
Синтаксис АДО не допускает комментариев в теле запроса.
Зачем тащить запросы на клиента? оставь их на сервере, строй вьювы и дергай их через АДО...

Автор: Bes 15.12.2004, 14:37
Кстати, есть еще на скул серваке такая штука как линк сервер т.е. привязываешься к левому источнику данных и работаешь как с скульной базой, только скорость конечно не та. тогда можно скуловские запросы писать на сервер а управлять при этом левыми данными.
не знаю как это будет работать с дбф но с акцессом у меня работало.

Автор: ТоляМБА 15.12.2004, 14:50
[quote] Зачем тащить запросы на клиента? оставь их на сервере, строй вьювы и дергай их через АДО...

Таска заключается в следующем: на предприятии используется прога БЭСТ. В ней чего только нет (сам в ней не юзал, но сказали типа 1С-предприятие). Но вот функции некторые нужные экономическому отделу она не делает, но позволяет делать выгрузку нужных данных в .DBF. Так вот: начальник мне дает задание типа: в этой таблице выбери то, умнож на то в этой таблице, убери одинаковые и выведи в третью (и т.п.) таблицу. Сверь конечные таблицы (свою прогу по обработке она пишет в фоксе) и ежели всё окей - выдай мне экзэшник. Потом этот экзешник отдают в экономический отдел и они раз в месяц или в неделю делают выгрузку из БЭСТА запускают мой экзешник и получают конечный ужный им результат. БЭСТ работает на каком-то Первасиве че это такое я не знаю, поэтому работа с файлами на MS SQL Server нереальна.


[quote]Так, только я не понял зачем нужно было все перегонять на сервак для отладки?

Повторюсь:
VIEWS
// (помогает визуально создавать выборки)
проверка работоспособности, кол-ва строк результата и синтаксиса. (Например если вы в QA написали неправильно столбец, вам будет выдано сообщение типа: такого столбца(поля) нет, а если вы такой ляп допустили в Delphi & ADO вым будет написано что-то типа: слишком мало параметров. И сиди думай в чем дело

Если можно через Query Analizer работать с .dbf не на серваке - подскажи как.

Автор: Bes 15.12.2004, 15:04
Нее.... че такое QA я знаю, просто уточнил.
Короче если твоя прога что-то вроде утилиты, то есть входной файл дбф не юзается никем, выходной файл дбф не юзается никем то делаешь DTS пакеты конвертишь себе на сервер там все перелопачиваешь и конвертишь обратно это можно делать и внешним екзешником.
Далее на счет linked servers поискал щас на таком хорошем форуме sql.ru рекомендую кстати нашел кое что, но сам попробовал - не получилось. Получилось только с Акцессом.
Вроде QA без сервера не работает - он еще при старте спрашивает куда цепляться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)