Как да проверите дали низ съществува
задачата е да попълните комбинирания списък с уникални стойности от две колони на таблицата. Първо попълвам с уникални стойности от една колона с помощта на SELECT DISTINCT. След това трябва да попълня с уникални стойности от друга колона и при попълване да проверя дали те вече се съдържат в падащия списък. Въпросът е - как да извърша тази проверка?
вижте свойството TStringList.Duplicates
> Първо попълвам с уникални стойности от една колона > с SELECT DISTINCT.не забравяйте Изберете различен Ltrim(RTrim(Field))
И тогава ще има линии
> задачата е да попълните комбинирания списък с уникални стойности от две > колони на таблица.
Грешната задача е следствие от грешната архитектура.
Защо задачата е грешна, а още повече архитектурата?
> защо задачата е грешна?
Ако е правилно, дайте аргументи в полза на поставянето на данни от тезидвеполета наеднатаблица вединUI списък.
не, Сергей М., ситуацията е малко по-различна. Jeer казва, че архитектурата е грешна, моля го да обоснове думите си. Просто е интересно как човек, който нищо не разбира от проблема си прави такива изводи.
> helluvaname (01/25/10 23:20) [6] > > не, Сергей М., нещата са малко по-различни. > Jeer казва, че архитектурата е грешна, аз го питам за моите > обосновете думите. > Просто се чудя как някой, който не знае нищо за задача > прави такива заключения. >Този човек познава „живота“. Затова си прави такива изводи. А колкото до "задачата", уви, не запазих яркото изказване на Николай aka Sniknik за разликата между въпрос и задача.
> Джийр казва, че архитектурата е грешна, аз го питам за моятаобосновете думите.
Присъединете се към Jeer. Най-вероятно основата е неумело проектирана.
> Просто интересно как човек, който нищо не разбира от задачата си прави такива изводи.
Този човек има много сериозен опит, който не можете да изпиете.
По принцип признавам, че тази ситуация (да се набутат записи от различни таблици в една комбинирана кутия), въпреки че не мога да се сетя за пример за такава ситуация веднага. Но тук възниква въпросът: защо да изобретяваме колелото, ако има TDBComboBox?
Има един груб, но добре познат контра-въпрос: „Какъв е акордеонът за козата?“
Тук човек пита: "Момчета! Имам обикновена кола, търкаля се напред-назад, но трябва да се търкаля настрани. Как?"
По принцип въпросът има право на съществуване и дори може да се предложи решение и повече от едно, но отговорът "Няма начин. Архитектурата на колата е" грешна "за това действие" също има право.
В същото време нямам представа защо ви трябваше, т.е. Не знам твоята задача.
Сега обяснете защо да смесвате различни обекти (две полета) в едно (общ списък).
И ако това е един обект, по някаква причина разпръснат в две полета, има грешка в дизайна.
Сега, ако това е един обект, но неговите "оттенъци" се извършват, тогава пак трябва да оставите едно поле за обекта и да въведете допълнително поле "оттенък".
при осчетоводяване на фактури е необходимо в таблицата да въведете склада "от" и склада "до". има нужда от две различни колони. за да изчислите баланса във всеки склад, трябва да изберете името на склада в падащия списък и да натиснете бутона "изчисли". колоната "от" може да не съдържа всички уникални записи в колоната "до" и обратно, така че трябва да изберете всички уникални записи от двете колони.
За тази цел трябва да се осигури ръководство.складове.
> helluvaname (01/26/10 10:52 AM) [10] > > при осчетоводяване на фактури е необходимо да въведете склада "от" в таблицата > и склад "къде".
Е, това е грешка в дизайна за вас.
Както правилно отбеляза съименникът, трябва да имате отделна справочна таблица „Складове“. Той винаги ще съдържа пълен и уникален списък на вашите складове.
Салдата обикновено се изчисляват не по фактури, а по състоянието на склада(овете), образуван към момента на осчетоводяване на фактурата. По принцип е възможно преизчисляване по фактури, но тези ненужни "жестове" са нужни по-скоро за проверка и проверка на целостта.
За да изчислите остатъка, не е нужно да знаете "От", както и "къде". Трябва да знаете приходите и разходите.
Остатъкът трябва да бъде 15 И ще се окаже, че. a +10 b +20 c -10
възможно, но какво е предимството?
> може би, но какво е предимството?
Прочетете за нормализирането на базата данни.
Имате ли имена на складове, които се променят на всеки час? В края на краищата, [12] казва. Винаги ще имате справочник под ръка. Както когато въвеждате фактури, така и когато правите изчисления. Попълнете полетата си веднъж и ги използвайте.
В нормализиране на база данни. Всяка повече или по-малко прилична база данни трябва да бъде нормализирана.
> helluvaname (01/25/10 15:38) > > задачата е да попълните комбинирания списък с уникални стойности от две > колони на таблица. > Първо попълвам с уникални стойности от една колона > с SELECT DISTINCT. > След това трябва да попълните с уникални стойности от друг > колони и при попълване проверете дали съдържат > вече е в разгъващия се списък. > Въпросът е - как да извършите тази проверка?Няма нужда да извършвате никакви проверки, SQL сървърът, както винаги, е пристрастенще го направи сам, програмистът просто трябва да има основни познания по SQL.
+ Интерфейсът трябва да бъде просто интерфейс. Нека цялата логика е на сървъра. Ами ако утре има война? (превключен на друг език / друго)
> Нека цялата логика е на сървъра.
Не забравяйте да добавите: "Това е моето лично мнение"
добре :), imho въпреки че не виждам защо може да е лошо. Сървърът на базата данни надживява своите GUI клиенти по-често
изберете различен S.A от (изберете отделен Col1 като A от Table1 обединение изберете различен Col2 като A от Table1) S
> изберете отделен S.A от > (изберете Col1 като A от Table1 > union > изберете Col2 като A от Table1) S