| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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-коде комментарии (-- или /* */), во-вторых по сообщению об ошибке нельзя понять из-за чего она (см. выше про параметры). Где можно найти хэлпы по 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 в АДО убивается по полдня а то и по дню, а время не терпит да еще команд и ситуаций непройденных впереди много. Понимаю, что все команды мне писать никто не будет, поэтому согласен на ссылки |
| Автор: 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 без сервера не работает - он еще при старте спрашивает куда цепляться. |