powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите плиз. VFPOleDB
20 сообщений из 20, страница 1 из 1
Помогите плиз. VFPOleDB
    #33375070
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо выполнить через VFPOleDB провайдера запрос:

Код: plaintext
1.
2.
3.
If (NOT EXISTS (Select * from Table ))
	insert into Table (...)
	 value(...)
endif

Как ему написать чтоб он принял?
Или какую нить конструкцию в один оператор предложите пожалуйста...

P.S. Работаю на C++Builder. Фокс давно забыл, VFPOleDB провайдер юзаю впервые (по инструкции к нему все конструкции допустимы, примеров написания нет)

Помогите пожалуйста! очень срочно надо, а время уходит даром...
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375071
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для информации:
провайдер от Visual FoxPro 9
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375075
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, придется делать в два запроса
Но всеже как IF непосредственно в провайдере заюзать???
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375112
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конструкции IF выражения SQL-запросов недопустимы. Лучше делать простой INSERT-SQL с дополнителльным условием WHERE

Код: plaintext
1.
2.
3.
4.
INSERT INTO Table (...)
SELECT Field1, Field2, ...
FROM ...
WHERE NOT EXISTS(Select * from Table)
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375162
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
INSERT INTO Table (...)
SELECT Field1, Field2, ...
FROM ...
WHERE NOT EXISTS(Select * from Table)
не подходит, конкретные значения передаю в параметрах.
если есть условие Were то требует from.
делать Select values... Top 1 from Table или Select ... from (Select Values...) слишком некрасиво. (После Transact SQL и PL SQL на такое рука не поднимается)
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375164
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А возможно в запросе следующее?
Код: plaintext
1.
2.
3.
4.
Use (:Table)
Set order to Tag
if Seek(:Val)
replace field1 With  :Val1,....
endif
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375265
Krey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ты ответа не получишь. Конкретизируй вопрос пожалуйста. Напиши что ты хочешь сделать, каким запросом, с какими параметрами.
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375267
Krey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то что ВладимирМ написал должно помочь. Если нет то мы не знаем чего то такого, что знаешь ты.
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375293
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411А возможно в запросе следующее?
Код: plaintext
1.
2.
3.
4.
Use (:Table)
Set order to Tag
if Seek(:Val)
replace field1 With  :Val1,....
endif

Ну не совсем такое по синтаксису, но возможно... Для этого лучше всего использовать хранимые процедуры в базе данных Visual FoxPro 9.0...

Good luck!
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375401
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реализовал по другому, но вопрос тем не менее интересует.

Описание общей задачи

Реализация в одном запросе VFPOleDB вставки параметров (или констант при динамическом формировании запроса) по условию.

В часности была простая задачка. Если лицевой счет существует - в выходном параметре вернуть ошибку, если лицюсчет отсутствует - выполнить Insert в таблицу (вставляемые значения передаются в параметрах запроса)

Реализация в два запроса не интересна, использование промежуточных таблиц и конструкций Select * from (Select ...) тоже.
Возможность использования Стор... дело в том что таблици FPD 2.6, в сторах VFP разбираться нет особого желания (после перехода на CBuilder к Фоксу тянет лишь необходимость...) Но сдается мне что SQL Fox'a не настолько ущербный, чтоб нельзя было сделать такие элементарные вещи без прроцедур... иначе мне процедур штук 50 делать придется или агрегировать их.
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375600
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411... Но сдается мне что SQL Fox'a не настолько ущербный, чтоб нельзя было сделать такие элементарные вещи без прроцедур... иначе мне процедур штук 50 делать придется или агрегировать их.
Что поделать, а как другим приходится мучаться - писать SP... Особенно "большим поклонникам всевозможных серверов" - это идеология программирования такая и ничего общего с FoxPro не имеет...

Если не хотите писать ХП (то есть желаете продолжить работать со свободными таблицами FPD) используйте Web Services - там можно внутри программировать на знакомых Вам принципах FPD, хотя немного прийдется почитать про XML, IIS, Windows security... Но по сравнению со CBuilder - VFP намного проще и приятнее...

But anyway, good luck!
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375694
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChОсобенно "большим поклонникам всевозможных серверов" - коим я и являюсь - мучиться не приходиться, сторы и вьюхи вещь приятная на T SQL и P Sql, А провайдеры SQLOLEDB и MSDAORA позволяют создавать динамический SQL на родном диалекте практически любой сложности, почему собственно и пытался обнаружить обычные для меня вещи в провайдере "хитрой лисы" (сколько кода в FPD и VFP пришлось написать в свое время..., надеялся он вырос до имитации сервера )

Все равно большое спасибо, отрицательный результат - тоже результат.
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375695
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, FoxPro - сам для себя хорош, но ревностно оберегает свои "изюменки" от чужаков...
Всем большое спасибо, тему прошу считать закрытой
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375745
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный вывод... VfpOleDb вполне эффективен, если программировать без прибабахов
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33375951
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411 А провайдеры SQLOLEDB и MSDAORA позволяют создавать динамический SQL на родном диалекте практически любой сложности, почему собственно и пытался обнаружить обычные для меня вещи в провайдере "хитрой лисы" ...
Ну почему - в FoxPro можно сделать это еще проще - кидаете в директорий с базой данной файл с расширением PRG и именем ХП - FoxPro автоматически будет его использовать... Куда уж проще
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33376732
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей КСтранный вывод... VfpOleDb вполне эффективен, если программировать без прибабахов
Прибабахи необходимы для того, чтобы старую фоксовую программу (написана на FoxPro 2.0 и даже на 2.6 не компилится) включить в общую информационную структуру с последующей ее заменой (сразу заменить не возможно из-за полного бардака в организации Б.Д. для чего и принято решение дублировать базу на SQL Сервере в "правильном Виде"

P.S. В предложивщего переписать Fox'совую прогу могу кинуть любой из процедур оригинала (процедура меньше 450 строк кода - редкость, вдобавок обращение к таблицам идет то по алиасам, то по номерам областей, к полям то по именам, то по номерам полей и все в одной процедуре, колличество процедур порядка 170)
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33376736
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch Andrew1411 А провайдеры SQLOLEDB и MSDAORA позволяют создавать динамический SQL на родном диалекте практически любой сложности, почему собственно и пытался обнаружить обычные для меня вещи в провайдере "хитрой лисы" ...
Ну почему - в FoxPro можно сделать это еще проще - кидаете в директорий с базой данной файл с расширением PRG и именем ХП - FoxPro автоматически будет его использовать... Куда уж проще
Ага, только Visual FoxPro 9 купить надо, чтобы откомпилить в FXP.
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33377061
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В часности была простая задачка. Если лицевой счет существует - в выходном
параметре вернуть ошибку, если лицюсчет отсутствует - выполнить Insert в
таблицу (вставляемые значения передаются в параметрах запроса)

***********************************
нужно несколько операторов в одном батче

if exists(select ...
raiserror('Exist!'...
else
insert into ...


в фокспро каждая чтрока является аналогом батча и это невозможно. Если не
нравится вполне здравое решение показать записи которые вставлять нельзя и
потом вставить записи которых нет

select from ... where exists (select ...
insert into ... where not exists (select ...


то ничего не поделать.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33377551
Krey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ExecScript() должен помочь
...
Рейтинг: 0 / 0
Помогите плиз. VFPOleDB
    #33382827
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Andrew1411!

> Ага, только Visual FoxPro 9 купить надо, чтобы откомпилить в FXP.

Нет, начиная с VFP6SP3 команда COMPILE доступна и из рантайма - так что
возьми рантайм любой более старой версии (например с foxclub.ru или с
немецкого сайта profox - извини, адрес точный не помню) и прогу - эмулятор
командного окна (их несколько есть - на foxclub.ru в составе дистрибутивов
рантайма она имеется).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите плиз. VFPOleDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]