Как да определите наличието на запис в таблица
Здравейте на всички! Възможно ли е в Access да разберете дали в таблицата има запис с определена стойност? Нещо като оператор на T-SQL "ако съществува"?
Досега съм направил уникален индекс на полето и минавам през всички данни, глупаво опитвайки се да добавя данни и да хвана изключение. Според мен не е най-бързият вариант :)
изберете count(*) от таблица където поле1="моята стойност"
UnDISCovery (27.09.04 17:23)
Ако изключението не се случва твърде често, тогава това е най-бързият вариант. Ако, напротив, новите данни са много редки, тогава трябва да направите „глупаво“ актуализиране, след това да анализирате броя на променените записи и, ако е необходимо, да добавите нов ред.
Изключение се случва много често :) Можете ли да разясните по-подробно опцията за "глупавата" актуализация? Алгоритъмът е критичен във времето, трябва да се изпълни възможно най-бързо. какъв е вашият съвет
query2.sql.text := "вмъкване в mytable(id, value) values(:id, value)"; . query1.sql.text := "update mytable set value = :value where >query1.prepare; while . do begin query2.params[1].asinteger := myid; query2.params[0].asfloat := myvalue; query1.execsql; if query1.row saffected = 0 тогава бе gin query2.params[0].asinteger := myid; query2.params[1].asfloat := myvalue; query2.execsql; end end
query2.sql.text := "вмъкване в mytable(id, value) values(:id, :value)"; . query1.sql.text := "update mytable set value = :value where >query1.prepare; while . do begin query1.params[1].asinteger := myid; query1.params[0].asfloat := myvalue; query1.execsql; if query1.row saffected = 0 тогава бе gin query2.params[0].asinteger := myid; query2.params[1].asfloat := myvalue; query2.execsql; end end
2[3] UnDISCOVEry (27.09.0417:35) >Изключение се случва много често :) Защо?
Тъй като има много по-малко нови данни и когато се опитате да вмъкнете стари (вече добавени), се получава изключване. ситуация поради уникалността на индекса в базата данни
Откъде идват новите? Ако също и от базата данни, свържете двете таблици и получете списък само с нови записи
Ново от текстов файл, за съжаление :(
> Нови от текстов файл, за съжаление :( форматиран? Вие сам как го разпознавате?
И за съжаление неформатиран, аз самият разпознавам и какво трябва да въведа в базата данни
. (жена с лесна добродетел). какъв е навикът да задаваш въпроси / да отговаряш на първоначалните данни, които изглежда подсказват поне тайните на родината?
колко неформатиран?КАКсе разпознавате? Можете ли да дадете пример или имате нужда от решение? Нали за това е форума, да обсъждаме, а не да чакаме готово решение (от къде ще дойде без обсъждания? За готово вече всичко е казано) начин на достъп? "уникален индекс" (стойност) откъде го взимаш? как въвеждате данните? . като цяло не бъдете скромни, опишете задачата.