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

Вниз

Переход к 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.04 c
1-1102668654
msm
2004-12-10 11:50
2004.12.26
Проблема с TDateTime


14-1102473842
Думкин
2004-12-08 05:44
2004.12.26
С днем рождения! 8 декабря


4-1100029238
redlord
2004-11-09 22:40
2004.12.26
размер кластера HDD


1-1102710065
Руслана
2004-12-10 23:21
2004.12.26
Подскажите как при вызове SaveDialog сделать чтобы в качестве


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский