Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите плиз. VFPOleDB / 20 сообщений из 20, страница 1 из 1
12.11.2005, 17:31:31
    #33375070
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Необходимо выполнить через VFPOleDB провайдера запрос:

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

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

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

Помогите пожалуйста! очень срочно надо, а время уходит даром...
...
Рейтинг: 0 / 0
12.11.2005, 17:43:23
    #33375071
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Для информации:
провайдер от Visual FoxPro 9
...
Рейтинг: 0 / 0
12.11.2005, 17:52:33
    #33375075
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Блин, придется делать в два запроса
Но всеже как IF непосредственно в провайдере заюзать???
...
Рейтинг: 0 / 0
12.11.2005, 19:25:39
    #33375112
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
В конструкции 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
12.11.2005, 22:27:42
    #33375162
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Код: 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
12.11.2005, 22:34:16
    #33375164
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
А возможно в запросе следующее?
Код: plaintext
1.
2.
3.
4.
Use (:Table)
Set order to Tag
if Seek(:Val)
replace field1 With  :Val1,....
endif
...
Рейтинг: 0 / 0
13.11.2005, 05:56:03
    #33375265
Krey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Так ты ответа не получишь. Конкретизируй вопрос пожалуйста. Напиши что ты хочешь сделать, каким запросом, с какими параметрами.
...
Рейтинг: 0 / 0
13.11.2005, 05:58:16
    #33375267
Krey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
то что ВладимирМ написал должно помочь. Если нет то мы не знаем чего то такого, что знаешь ты.
...
Рейтинг: 0 / 0
13.11.2005, 11:14:31
    #33375293
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
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
13.11.2005, 14:16:43
    #33375401
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Реализовал по другому, но вопрос тем не менее интересует.

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

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

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

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

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

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

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

P.S. В предложивщего переписать Fox'совую прогу могу кинуть любой из процедур оригинала (процедура меньше 450 строк кода - редкость, вдобавок обращение к таблицам идет то по алиасам, то по номерам областей, к полям то по именам, то по номерам полей и все в одной процедуре, колличество процедур порядка 170)
...
Рейтинг: 0 / 0
14.11.2005, 14:13:44
    #33376736
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Sergey Ch Andrew1411 А провайдеры SQLOLEDB и MSDAORA позволяют создавать динамический SQL на родном диалекте практически любой сложности, почему собственно и пытался обнаружить обычные для меня вещи в провайдере "хитрой лисы" ...
Ну почему - в FoxPro можно сделать это еще проще - кидаете в директорий с базой данной файл с расширением PRG и именем ХП - FoxPro автоматически будет его использовать... Куда уж проще
Ага, только Visual FoxPro 9 купить надо, чтобы откомпилить в FXP.
...
Рейтинг: 0 / 0
14.11.2005, 15:56:26
    #33377061
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
В часности была простая задачка. Если лицевой счет существует - в выходном
параметре вернуть ошибку, если лицюсчет отсутствует - выполнить 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
14.11.2005, 19:08:11
    #33377551
Krey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
ExecScript() должен помочь
...
Рейтинг: 0 / 0
17.11.2005, 01:55:47
    #33382827
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз. VFPOleDB
Hi Andrew1411!

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

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

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


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