Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

запрос SQL   Найти похожие ветки 

 
Ирг   (2009-09-25 11:06) [0]

Помогите разобраться !!!

 DataModule2.ADOQuery2.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.SQL.Clear;
DataModule2.ADOQuery2.SQL.Add("declare @var1 int, @var2 int, @quer1 int, @quer2 int");
DataModule2.ADOQuery2.SQL.Add("set @var1 = "SELECT IDn, f, i, o, dr FROM Atab IN  "1" "dBASE IV;" ");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "2" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "3" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "4" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "5" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "6" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "7" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "8" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "9" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "10" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "11" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, f, i, o, dr FROM Atab IN  "12" "dBASE IV;""");
DataModule2.ADOQuery2.SQL.Add("set @var2 = "SELECT IDn, v, m, s, f FROM Btab IN  "1" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add(" UNION All SELECT IDn, v, m, s, f FROM Btab IN  "2" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add(" UNION All SELECT IDn, v, m, s, f FROM Btab IN  "3" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add(" UNION All SELECT IDn, v, m, s, f FROM Btab IN  "4" "dBASE IV;"");
DataModule2.ADOQuery2.SQL.Add(" UNION All SELECT IDn, v, m, s, f FROM Btab IN  "5" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "6" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "7" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "8" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "9" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "10" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "11" "dBASE IV;"");
 DataModule2.ADOQuery2.SQL.Add("UNION All SELECT IDn, v, m, s, f FROM Btab IN  "12" "dBASE IV;""");
DataModule2.ADOQuery2.SQL.Add("set @quer1 = "SELECT * FROM @var1 INNER JOIN @var2 ON Atab.IDn = Btab.IDn"");
DataModule2.ADOQuery2.SQL.Add("set @quer2 = "SELECT DISTINCT CL.IDn, CL.f, CL.i, CL.o, CL.dr, CL.v, CL.m,  CL.s, CL.f ");
DataModule2.ADOQuery2.SQL.Add("FROM @quer1 CL INNER JOIN @quer1 CR ON ");
DataModule2.ADOQuery2.SQL.Add("CL.IDn <> CR.IDn ");
DataModule2.ADOQuery2.SQL.Add("AND CL.f = CR.f ");
DataModule2.ADOQuery2.SQL.Add("AND CL.v = CR.v ");
DataModule2.ADOQuery2.SQL.Add("AND CL.i = CR.i ");
DataModule2.ADOQuery2.SQL.Add("AND CL.o = CR.o ");
DataModule2.ADOQuery2.SQL.Add("AND CL.m = CR.m");
DataModule2.ADOQuery2.SQL.Add("AND CL.dr = CR.dr ");
DataModule2.ADOQuery2.SQL.Add("AND CL.s <= CR.f "");
DataModule2.ADOQuery2.SQL.Add("EXEC (@quer2)");
DataModule2.ADOQuery2.Active:=true;

Неправильно определен объект parameter


 
Игорь Шевченко ©   (2009-09-25 11:47) [1]

Приз!


 
Ирг   (2009-09-25 11:47) [2]

Разве так нельзя ?


 
sniknik ©   (2009-09-25 12:10) [3]

запрос составлен по принципу - "а что тут думать, тут прыгать надо" © какой то анекдот
только с добавкой "если что на дельфимастере спрошу"...

> Разве так нельзя ?
ну, никто не запрещает, т.что можно. но только работать не будет, ни в jet ни в mssql, нигде. кстати а почему нет добавления особенностей/стилей из оракла/файребирд/mysql? упущение однако...

> Помогите разобраться !!!
бери книжку/справку где есть описание sql в jet и читай. тут нужно не разбираться, а переучиваться.


 
Anatoly Podgoretsky ©   (2009-09-25 12:33) [4]


> Разве так нельзя ?

Да кто же будет в этом разбираться, к тому же не по теме форума.


 
Сергей М. ©   (2009-09-25 12:41) [5]

Объявили ц/ч переменную

> declare @var1 int

и пытаемся засунуть в нее текст

> set @var1 = "SELECT


КаковО ?


 
test ©   (2009-09-25 13:21) [6]

Расскажи как ты умудряешся в одну переменную int воткнуть несколько полей?


 
MsGuns ©   (2009-09-25 13:34) [7]

Сабж напомнил старую притчу о том. как солдат просил у вдовицы водички попить - дай говорит, воды напиться, а то так жрать охота, что переночевать негде
:)


 
Ирг   (2009-09-25 13:39) [8]

>>test ©   (25.09.09 13:21) [6]

>>Расскажи как ты умудряешся в одну переменную int воткнуть несколько полей?

ступил маленько

varchar или char втыкать ?  я не знаю какой размер будет запроса !


 
Сергей М. ©   (2009-09-25 13:43) [9]


> Ирг   (25.09.09 13:39) [8]


> не знаю какой размер будет запроса


А зачем вообще тебе понадобилось все это ?
У клиента нет прямого доступа к этим DBF-файлам что ли ?


 
MsGuns ©   (2009-09-25 14:05) [10]

Да черт с ним, с доступом - меня больше всего забавляет то, что огурцы ваяют все эти небоскребы, очевидно ленясь написать мини-цикл :)


 
Сергей М. ©   (2009-09-25 14:14) [11]


> ленясь написать мини-цикл


Так и я туда же гну)

Цикл прямо на клиенте, не трогая никаким боком ни SQL вообще ни MSSQL в частности)


 
Сергей М. ©   (2009-09-25 14:21) [12]


> MsGuns ©   (25.09.09 14:05) [10]


У огурцов, насколько я пониял, задача импорта из кучи однотипных таблиц с какими-то там документами, которые ежемесячно валятся с луны в 12 специально на то подготовленные папки.
Актуальные результаты этого импорта огурцы желают получить в любой момент времени в виде некоего активного дейтасета (зачем - не знаю).


 
MsGuns ©   (2009-09-25 14:27) [13]

>Сергей М. ©   (25.09.09 14:21) [12]
>зачем - не знаю.

Однако нацяльника сказал


 
MsGuns ©   (2009-09-25 14:45) [14]

>зачем - не знаю.

Рискну предположить (телепатор заржавел, ну а вдруг !)
Овощ тянет лямку в каком-нибудь Облупрснабсбытчего-то-тампроме, занимающемся в числе прочих и такой лабудой как сбор и анализ результатов работы своих подчиненных на "местах". В деревнях и селах поставили компы, а на них самопальную чуду-софтюху на клиппере или, если контора продвинутая, на фоксе. Местные служаки усердно заполняют "поля", и в результате образуются дбф-ки, которые и мылятся или эфтээпятся в контору.
Нацяльника конторы очень заботит возможность оперативного (т.е. в любой момент) обзора всего заполненного, но смотреть по одному отчету, клацая мышкой по надцать раз, его колбасит,- вот он и поручил своему программеру сострогать что-то поудобнистее

:)


 
Ирг   (2009-09-25 14:49) [15]

Огурец еще зеленый  !!!

базы нет

есть куча dbf которые поступают каждый месяц

мне нужно достать из них нужные цифры

к dbf полный доступ можно воротить ими как угодно

покажите как лучше

>>Да черт с ним, с доступом - меня больше всего забавляет то, что огурцы >>ваяют все эти небоскребы, очевидно ленясь написать мини-цикл :)

я не ленюсь а не знаю как пробовал по разному не выходит !!!

ПОМОГИТЕ  ЧЕМ МОГИТЕ ...........


 
test ©   (2009-09-25 14:50) [16]

MsGuns ©   (25.09.09 14:45) [14]
Перечитал тему не понял, как приведенный код относиться к твоей версии?


 
Anatoly Podgoretsky ©   (2009-09-25 14:52) [17]

> MsGuns  (25.09.2009 14:45:14)  [14]

Может быть, я как то видел очень крутой софт, для горуправы, очень дорогой, а на самом деле это был Нортон Коммандер под ДОС


 
sniknik ©   (2009-09-25 14:53) [18]

> ни MSSQL в частности)
какой MSSQL? у него jet. это в запросе сборная солянка.

> ПОМОГИТЕ  ЧЕМ МОГИТЕ ...........
программу за тебя написать? тебе уже сказано что делать - изучать то что используешь, в этом случае jet.


 
Сергей М. ©   (2009-09-25 14:55) [19]


> MsGuns ©   (25.09.09 14:45) [14]


Вполне может быть)


 
sniknik ©   (2009-09-25 14:58) [20]

> покажите как лучше
лучше, оно не абстрактное, оно конкретное, по обстановке, в твоем случае возможно было бы лучше заливать данные в какую то нормальную базу например mssql и отчеты делать уже с нее. (но это только по тому что видно отсюда, раскрой еще какой нибудь инфы и все может поменяться с ног на голову)


 
Сергей М. ©   (2009-09-25 14:59) [21]


> к dbf полный доступ можно воротить ими как угодно


ну так а зачем тогда весь этот огород с запросами, юнионами, ХПшными заморочками и прочей лабудой ?

Возьми обычный TClientDataSet, пройдись в цикле по всем DBFам, открывая их по очереди, и заполни ClientDataSet записями из этих DBF ..


 
Сергей М. ©   (2009-09-25 15:01) [22]


> sniknik ©   (25.09.09 14:53) [18]
> какой MSSQL?


А бис его знает)
Откуда-то же к нему свались шматки текстов в синтаксисе, характерном для MSSQL ..


 
Плохиш ©   (2009-09-25 15:08) [23]


> ПОМОГИТЕ  ЧЕМ МОГИТЕ ...........

А смысл?


 
Anatoly Podgoretsky ©   (2009-09-25 15:14) [24]


> Откуда-то же к нему свались шматки текстов в синтаксисе,
>  характерном для MSSQL ..

А ничего другого просто в Сети не нашел.


 
test ©   (2009-09-25 15:48) [25]

Пишешь програмулинку чтобы пасла на предмет новых dbf папку, новые открываешь и как в [21] отправляешь в основную БД, после копируешь в папку обработанные. Потом удаляешь обработанный файл.


 
Ирг   (2009-09-25 16:16) [26]

Огурец не получал еще так много информации в абстрактном виде .....
Можно код товарищи мастера !!!

>>Возьми обычный TClientDataSet, пройдись в цикле по всем DBFам, открывая их >>по очереди, и заполни ClientDataSet записями из этих DBF ..

как это ?

>>Пишешь програмулинку чтобы пасла на предмет новых dbf папку, новые >>открываешь и как в [21] отправляешь в основную БД, после копируешь в >>папку обработанные. Потом удаляешь обработанный файл.

и это как ?
как ?


 
Сергей М. ©   (2009-09-25 16:22) [27]


> как это ?


> и это как ?


> как ?


Вот ведь раскакался)

Ты вот расскажи для начала, что ты дальше собрался делать с этим ADOQuery2, если бы вся эта петрушка у тебя чудесным образом заработала ?


 
Ирг   (2009-09-25 16:26) [28]

если бы вся эта петрушка у меня чудесным образом заработала !!!!!!!
вывел в DBGrid1 и мне больше и не надо !


 
Сергей М. ©   (2009-09-25 16:29) [29]

А DBFы с луны все падают и падают ..

Ты вообще представляешь себе, какой кошмар ожидает того, кто будет глазеть в этот грид, когда DBFов этих накопится с вагон и более ..


 
Ирг   (2009-09-25 16:33) [30]

Мне нужно в при выходе удалять результат запроса

dbf всего 2 талицы по 12 шт  и больше быть не может


 
MsGuns ©   (2009-09-25 16:35) [31]

Блин, вот пример допотопного алгоритма
1. В десктопе создаешь дбф нужной структуры (вообще-то можно автоматом получить из имеющихся в папке-"обезьяннике" (для непронятливых: обезьянником менты называют накопитель, куда сажают пойманных на базаре-вокзале личностей без длокументов, а так как там полно негров, пардон, афроамериканцев, то.. в общем понятно, я думаю), но это надо быть слегка продвинутым.
2. Пишешь в дельфи (ваське, сях, пёрдле, жабе или где-нибудь - по барабану) такую хитровыдуманную софтюху:
 - чистишь агрегатный дбф (тот самый, что был сварганен в DBD)
 - опрашиваешь содержимое "обезьянника" и всех афроамериканцев поименно заносишь в список
 - в цикле пробегаешь список и для каждого мастеришь строку
       Insert * into MyDBF from select * from <имя афроамериканца (подставляешь из списка>
      после чего встромляешь его в TQuery.Text и выполняешь.
 - открываешь MyDBF, связываешь его с сеткой и наблюдаешь результаты.
 - к сетке примастрячь делфишный нафигатор типо для крутизны
3. Показываешь нацяльнику софтишшу и намякиваешь, что за месяцок и скромную премию в размере 3-х окладов сможешь соорудить еще поиски, фильтры, сортировки и прочую малину.
4. Если нацяльника соглашается, нанимаешь программиста-желтоогуречника и за одын оклад и одын день он делает в подшаманивает твою прогу до нужной функциональности.


 
Сергей М. ©   (2009-09-25 16:44) [32]


> в при выходе удалять результат запроса


Он и так сам по себе "удалится", ты же нигде его не сохраняешь)


> dbf всего 2 талицы по 12 шт  и больше быть не может


И там они застынут на веки вечные ?
Тогда дождись, когда все 24 штуки благополучно свалятся, и не морочь людям голову, мол, чего делать если дбф в папке не оказалось.. Ты ведь именно этим изначально озаботился ?)


 
Плохиш ©   (2009-09-25 16:54) [33]


> MsGuns ©   (25.09.09 16:35) [31]
>
> Блин, вот пример допотопного алгоритма

Хм, аФФтар вроде алгоритма не просил.

> Ирг   (25.09.09 16:33) [30]

Подойди к начальнику, сделай добрые глазёнки и скажи "Насяльника, насяльника, найми программиста"


 
Ирг   (2009-09-25 16:54) [34]

Огурцы всегда тупят по началу !!!

>>Он и так сам по себе "удалится", ты же нигде его не сохраняешь)

если он заработает !!!


 
Плохиш ©   (2009-09-25 16:56) [35]

Не полетит!


 
MsGuns ©   (2009-09-25 16:59) [36]

Кстати, в предложенный в [31] алгоритм надо добавить едну штукенцию дабы начальник свовсем обалдел от радости, а именно в агрегатный дбф добавить поле, куда заносить погонялово очередной "обезьяны". Тогда в сетке можно будет увидеть кто собсна "заполнял".
Как говорил Петр I "Чтоб дурь каждого видна была"


 
Сергей М. ©   (2009-09-25 17:03) [37]


> если он заработает


Оно не заработает, даже не надейся)

А что, собссно, мешает создать собственную БД с таблицей MyTable, куда можно было  добавлять содержимое вновь упавших DBF, по одной по мере падения ?
Тогда это заработало бы при простейшем запросе "SELECT * FROM MyTable"

Или начальник запретил ?)


 
MsGuns ©   (2009-09-25 17:08) [38]

>Сергей М. ©   (25.09.09 17:03) [37]

Плагиатничаем помаленьку ?
:)


 
Сергей М. ©   (2009-09-25 17:11) [39]


> MsGuns ©   (25.09.09 17:08) [38]


Так молчит же)
Знать ты и вправду попал в точку, ибо молчание - знак согласия)


 
Ирг   (2009-09-25 17:15) [40]

Если так намного лучше то конечно создам.

//в цикле пробегаешь список и для каждого мастеришь строку
//      Insert * into MyDBF from select * from <имя афроамериканца //(подставляешь из списка>

i:=0
while i<12 do
begin
Insert IDn, f, i, o, dr into MyDBF from (SELECT IDn, f, i, o, dr FROM Atab IN  "1" "dBASE IV;");
i++
end

как менять папку в цикле ?



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.006 c
4-1223712939
@!!ex
2008-10-11 12:15
2009.11.29
Получение данных с ИК порта.


15-1254345618
Германн
2009-10-01 01:20
2009.11.29
Интересные системные требования.


2-1255347243
Alex4555
2009-10-12 15:34
2009.11.29
Как работает assignfile


15-1249471484
pasha_golub
2009-08-05 15:24
2009.11.29
Игрушки


15-1254496978
Германн
2009-10-02 19:22
2009.11.29
Название контакта датчика





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский