Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

Переход к Oracle9 проблема с уиникальным полем   Найти похожие ветки 

 
Evyshka   (2004-11-23 17:27) [0]

До этого была БД ключевое поле считалось по функции  с использованием  table.IndexFieldNames т.е сортировка по индексному полю - поиск пропуска - если нет то обавление
А при использовании TOraTable на этом месте вылетает ошибка
Может теперь можно это реализовать какой то встроенной функцией или запросом????


 
Reindeer Moss Eater ©   (2004-11-23 17:37) [1]

Встроенным "словом" ORDER BY


 
Evyshka   (2004-11-24 08:58) [2]

Если честно не поняла как. А если пропуск тоже он присвоит???


 
Reindeer Moss Eater ©   (2004-11-24 09:21) [3]

Если честно, то тебя тоже никто здесь не понимает.


 
Sergey13 ©   (2004-11-24 09:37) [4]

2Evyshka  
Странный переход к Ораклу. Зачем Табл то нужен вообще?

>До этого была БД
Какая?

>ключевое поле считалось по функции  
Это как? Какое значение у слова "ключевое"?


 
Evyshka   (2004-11-24 09:44) [5]

нужна функция приема если значение поля не найдено то оно формируется как уникальное, если найдено то запись редактируется


 
Sergey13 ©   (2004-11-24 09:51) [6]

2[5] Evyshka   (24.11.04 09:44)
Начни с того, что никто с форума не видел твоей задачи, даже компьютера твоего не видели. Формулируй вопросы понятно для всех, если хочешь получить ответ.

>нужна функция приема
Стеклотары? Платежей за мобилу?


 
Johnmen ©   (2004-11-24 09:54) [7]

А что там SEQUENCE ?


 
Evyshka   (2004-11-24 10:11) [8]

Нужна функция приема инвормации по людям в базу, при этом у них формировалось уникальное ключевое поле, если информация повторяется то принимать поверх


 
Johnmen ©   (2004-11-24 10:14) [9]

GetPeopleInformation
эта ?


 
Sergey13 ©   (2004-11-24 10:17) [10]

2[8] Evyshka   (24.11.04 10:11)
А если то же самое, но в терминах БД. Тебе первичный ключ нужно проверять? Откуда идет прием информации? Как формируется это твое уникальное ключевое поле. Может тригером?
Тебе лень писать подробно?


 
Evyshka   (2004-11-24 10:28) [11]

Нет не лень :-))
Идет прием информации по полю Field1(имеется ввиду проверка при приеме по этому полю если найдено такое значение то запись редактириется если нет  то добавляется) при добавлении формируется уникальное поле Field2 - номер по порядку(проверка следущая если 12345 то присваиваиться 6 , если 12456 то присваивается 3)


 
Sergey13 ©   (2004-11-24 10:36) [12]

2[11] Evyshka   (24.11.04 10:28)
Не, ну ты разводишь всех что ли? 8-) Ты программист или инспектор отдела кадров?


 
Evyshka   (2004-11-24 10:39) [13]

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


 
Sergey13 ©   (2004-11-24 10:44) [14]

2[13] Evyshka   (24.11.04 10:39)
>не развожу мне кажется что я так все понятно написала
Только тебе и понятно. 8-) У тебя и БД под руками и проект свой ты видишь, а мы только догадываться можем - что у тебя там.


 
ЮЮ ©   (2004-11-24 10:44) [15]

>А при использовании TOraTable на этом месте вылетает ошибка

А показать это место и указать какая ошибка - скромность не позволяет?


 
Reindeer Moss Eater ©   (2004-11-24 10:48) [16]

Так она же "вылетает". Как её покажешь?


 
roottim ©   (2004-11-24 11:02) [17]

не советую искать дыры в последовательнотсях. Отвыкайте от ненужного.
временно вам может помочь такая ф-я (непроверил.. но должна сработать. id должен быть pk или индексирован)


create or replace function GEtNEwID return number
is
 i number := 1;
 res number;
begin
while i <= 10000 loop --limit
 select id into res from my_table where id = i;
 i := i + 1;
end loop;
exception
 when others then
   return i;  
end;


 
Evyshka   (2004-11-24 17:12) [18]

Убрала одно ненужное поле :-)))
Проблема теперь в следующем :-)) НАдо сделать прием dbf таблицы в таблицу Oracle. Если запись найдена то ее обновить а если нет то добавить.
Вопрос каждую запись проверять построчно???

Извиняюсь за кадровую формулировку :-)))


 
vecna ©   (2004-11-25 01:13) [19]

rtfm
merge (>=9i)

или тривиальный универсальный вариант:

update table...;
if SQL%NOTFOUND then
 insert into table...
end if;


 
Fay ©   (2004-11-25 03:03) [20]

2 vecna ©   (25.11.04 1:13) [19][Ответить]
merge не работает с политиками доступа


 
Evyshka   (2004-11-25 17:18) [21]

а как же типа так каждую запись update делать?



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

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
4-1099316462
maxz
2004-11-01 16:41
2004.12.26
Проверка CRC32


1-1103014114
Delphi5.01
2004-12-14 11:48
2004.12.26
выезжающее окошко как это сделано в WinAmp-е


14-1102494574
Rouse_
2004-12-08 11:29
2004.12.26
LOL


1-1102613672
sLa\/a
2004-12-09 20:34
2004.12.26
TreeView


1-1102785933
vvvaaa
2004-12-11 20:25
2004.12.26
Промотка панели