Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 10:32   #21
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

да мне кажется что на ваш взгляд у меня вся программа по-женски написана =)))

там в запросе много нюансов...
условия добавляются на усмотрение пользователя,
строковые значения из столбцов сравниваются с другими таблицами
( таким образом - if not Table4.Locate('vessel', e, [loCaseInsensitive]) then
....
ADOQuery1.SQL.Add('..здесь условие с параметром.')
....
- здесь может длинный запрос сформироваться ),
числовые со значениями из Edit'ов и Combobox'ов...

в общем вы предлагаете мне сделать всё за меня =))))

я сначала написала все эти запросы в BDE элементах. там всё хорошо работало. и не было ошибок типа SQL:statement too long.
потом надо было перейти на ADO. и я очень удивилась... как так длинный запрос. не такой уж он и длинный. ну думаю, я ж мало чего в этом понимаю.... надо что-то настроить. поискала в инете, никто до меня по-ходу с такими проблемами не сталкивался (только про кол-во символов в строке нашла =(( ).
вот и подумала у знающих людей спросить...

подскажи, пожалуйста, что мне сделать...... а то я уже всю голову издумала =(
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 10:55   #22
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Ну тут только запрос оптимизировать....
я не зря спросил по этому поводу
(sex <> "M" and sex <> "F" and sex <> "J")
что там у вас осталось - насекомые???
т.е. эту строчку проще заменить sex = "N"
так-же в базе надо определять что можно вписывать в поле, а что нельзя (триггеры)

БД кстати какая?
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 20.07.2010, 11:44   #23
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

DBF

я не могу определять что вписывают в поле таблицы.
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 11:51   #24
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

тижолый случий.......
а нет желания перейти к примеру на interbase??
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 20.07.2010, 11:57   #25
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

я не могу. потому что там, откуда приходят данные всё так устроено. и ничего никто менять не будет =((
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 12:09   #26
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Korben5E Посмотреть сообщение
т.е. эту строчку проще заменить sex = "N"
нельзя. там может быть что-то типа "в" или "1".. и надо такие строки значения вернуть.
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 12:19   #27
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

ну тогда хотя-бы так можно:

sex not in ('M','F','J')
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 20.07.2010, 12:19   #28
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

вот я покажу запрос, он может увеличиться на несколько строк (в зависимости от данных в тиблице)

CB1 - checkbox1.Checked

сочетание CB может быть любым (например, только CB1 =true и CB11=true, а остальные false)

только пожалуста сильно не ругайтесь за мою непросвященность в SQL

select * from ЛЫЕБ02_1 where

при СВ1 = true SQL.Text.Add('region = 123456789')

при СВ2 - or vessel = :ves

при СВ3 - or cruise_n > 50.00 or cruise_n < 1.00

при СВ4 - or latitude>90.00 or latitude<(-90.00)

при СВ5 - or longitude > 180.00 or longitude< (-180.00)

при СВ6 - or (n_hawl>300.00 or n_hawl<1.00)

при СВ7 - or (num > 200.00 or num < 1.00)

при СВ8 - or ((obj_code = 84490101) and
((sex="M" and ((matur_st = 10 and (m_lngth>:X10 or m_lngth<:R10))
or (matur_st = 20 and (m_lngth>:X20 or m_lngth<:R20))
or (matur_st = 30 and (m_lngth>:X30 or m_lngth<:R30))
or (matur_st = 40 and (m_lngth>:X40 or m_lngth<:R40))
or (matur_st = 51 and (m_lngth<:X51 or m_lngth>:R51))
or (matur_st = 52 and (m_lngth<:X52 or m_lngth>:R52))
or (matur_st = 53 and (m_lngth<:X53 or m_lngth>:R53))
or (matur_st = 60 and (m_lngth<:X60 or m_lngth>:R60))
or (matur_st = 70 and (m_lngth<:X70 or m_lngth>:R70)) or m_lngth>:RR2 or m_lngth<:RR0))
or (sex="F" and ((matur_st = 10 and (m_lngth>:Y10 or m_lngth<:S10))
or (matur_st = 20 and (m_lngth>:Y20 or m_lngth<:S20))
or (matur_st = 30 and (m_lngth>:Y30 or m_lngth<:S30))
or (matur_st = 40 and (m_lngth>:Y40 or m_lngth<:S40))
or (matur_st = 51 and (m_lngth<:Y51 or m_lngth>:S51))
or (matur_st = 52 and (m_lngth<:Y52 or m_lngth>:S52))
or (matur_st = 53 and (m_lngth<:Y53 or m_lngth>:S53))
or (matur_st = 60 and (m_lngth<:Y60 or m_lngth>:S60))
or (matur_st = 70 and (m_lngth<:Y70 or m_lngth>:S70)) or m_lngth>:SS2 or m_lngth<:SS0))
or (sex="J" and ( m_lngth>:TT1 or m_lngth<:TT0))))

при СВ9 - or ((obj_code = 84490101) and
( ((sex="M" and ((m_lngth<=:RR1 and (weigth<:AA0 or weigth> :AA1))
or (m_lngth>:RR1 and (weigth<:AA1 or weigth> :AA2)))))
or (sex="F" and ((m_lngth>=:SS1 and (weigth<:BB1 or weigth> :BB2)))
or (m_lngth<:SS1 and (weigth<:BB0 or weigth> :BB1)))))
or (sex="J" and (weigth<:UU0 or weigth> :UU1))))

при СВ10 - or (sex <> "M" and sex <> "F" and sex <> "J")

при СВ11 - or ( (sex="M" or sex="F" ) and matur_st<>10 and matur_st<>20 and matur_st<>30 and matur_st<>40 and matur_st<>51 and matur_st<>52 and matur_st<>53 and matur_st<>60 and matur_st<>70)
or (sex = "J" and matur_st <> 0)

при СВ11 - or stom_weig*5>=weigth

при СВ12 - or ((stom_ball <> 5 and stom_ball<>4 and stom_ball<>3 and stom_ball<>2 and stom_ball<>1 and stom_ball<>0) or stom_ball is null )

при СВ12 - or region is null or vessel is null or cruise_n is null or latitude is null or longitude is null or gear_code is null or n_hawl is null
or obj_code is null or num is null or m_lngth is null or weigth is null or sex is null or matur_st is null or stom_weig is null or stom_ball is null
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 12:20   #29
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Korben5E Посмотреть сообщение
ну тогда хотя-бы так можно:

sex not in ('M','F','J')
да так можно
Ks2010 вне форума Ответить с цитированием
Старый 20.07.2010, 12:29   #30
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Ks2010 Посмотреть сообщение

при СВ8 - or ((obj_code = 84490101) and
((sex="M" and (
(matur_st = 10 and (m_lngth>:X10 or m_lngth<:R10))
or (matur_st = 20 and (m_lngth>:X20 or m_lngth<:R20))
or (matur_st = 30 and (m_lngth>:X30 or m_lngth<:R30))
or (matur_st = 40 and (m_lngth>:X40 or m_lngth<:R40))
or (matur_st = 51 and (m_lngth<:X51 or m_lngth>:R51))
or (matur_st = 52 and (m_lngth<:X52 or m_lngth>:R52))
or (matur_st = 53 and (m_lngth<:X53 or m_lngth>:R53))
or (matur_st = 60 and (m_lngth<:X60 or m_lngth>:R60))
or (matur_st = 70 and (m_lngth<:X70 or m_lngth>:R70))
or m_lngth>:RR2 or m_lngth<:RR0))
мне этот участок напоминает прокрустово ложе...
если ты Мужик и твоя длинна больше 2х метров или меньше 1,5 - то тебя надо выбрать

давайте начнем с мелочи - например это:
matur_st = 10 and (m_lngth>:X10 or m_lngth<:R10)

расшифруйте что хотел заказчик? с конкретными числами плиз
Non est culpa vin, sed culpa bibentis

Последний раз редактировалось Korben5E; 20.07.2010 в 12:32.
Korben5E вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод строки в long long и обратно Dimarik Общие вопросы C/C++ 9 16.09.2009 13:27
Ошибки «If statement missing )» Яр|/||< (^_^) Общие вопросы C/C++ 14 23.06.2009 23:17
Long file name (LFN) Liquor Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 29.03.2009 17:10
Statement Global blutang Microsoft Office Excel 4 07.02.2009 12:33