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

Вниз

Импорт из csv в базу   Найти похожие ветки 

 
Yurij-7   (2005-11-07 12:25) [0]

Уважаемые Мастера, прошу помочь разобраться в сложившейся ситуации:
есть файл CSV который сначала загоняю в СтрингГрид а потом хочу импортить, перед импортом надо проверять существует ли запись с таким же идентификатором в базе, если да то отказаться от импорта, если нет то добавить запись.
Подскажите каким образом будет правильный импорт, как вариант я могу использовать исключительные ситуации (поле идентификатора будет индексным), но всеже хотелось это сделать через SQL, получаеться сначала надо делать селект с базы чтобы проверить чуществует ли запись а потом если результат пустой то добавить новую, или есть решение более правильное и проще?
Спасибо.


 
Val ©   (2005-11-07 13:09) [1]

1.создать первичный ключ в таблице, куда качаете.
2.обрабатывать ошибку нарушения первичного ключа при вставке.


 
Yurij-7   (2005-11-07 13:17) [2]

ну я это описал для доступа через TTable (это для меня не самый лучший вариант) я хочу это все через SQL +TQuery  делать.


 
Sergey13 ©   (2005-11-07 13:29) [3]

> получаеться сначала надо делать селект с базы чтобы проверить чуществует ли запись
Зачем это для отлова ИС?


 
Val ©   (2005-11-07 13:36) [4]

>[2] Yurij-7   (07.11.05 13:17)
можно воспользоваться загрузкой всех id на клиента в список, при вставке - искать.


 
Yurij-7   (2005-11-07 13:43) [5]

ну импорт я вижу так, беру значение идентификатора с стринг грида, потом по этому значению делаю селект из базы, если Кверик ничего не вернул то делаю инсер а если что то вернул то получаеться запись в базе уже есть.


 
Val ©   (2005-11-07 13:46) [6]

если вы делаете построчную вставку, то см.1. никакой разницы через квери или тейбл - пункты справедливы для обоих случаев.


 
Sergey13 ©   (2005-11-07 13:47) [7]

2[5] Yurij-7   (07.11.05 13:43)
Непонятно зачем тебе стринггрид, но это дело твое.
А почему не так - инсертишь новую запись, если возникает ИС - откатываешь и продолжаешь со следующей.


 
Yurij-7   (2005-11-07 13:56) [8]


> если вы делаете построчную вставку, то см.1. никакой разницы
> через квери или тейбл - пункты справедливы для обоих случаев.
>


я так понял через блок try ... except ?


> 2[5] Yurij-7   (07.11.05 13:43)
> Непонятно зачем тебе стринггрид, но это дело твое.

ну сначала все гружу в СтрингГрид, там автозаменяються значения, коректируються и идут в базу ...


 
Val ©   (2005-11-07 14:26) [9]

>[8] Yurij-7   (07.11.05 13:56)
> я так понял через блок try ... except ?

конечно.

> ну сначала все гружу в СтрингГрид

зачем вам визуализировать их? почему не грузить в любой доступный датасет в памяти, например ClientDataSet?


 
ANB ©   (2005-11-07 14:30) [10]


> Yurij-7   (07.11.05 13:56) [8]

А я бы сделал так, как ты сам и предложил : т.е. через предварительный запрос. Напрягать систему исключений для сего, по моему, некузяво. А скорости не прибавится. Плюс исключение может произойти по любой другой причине и придется обрабатывать коды. А они у разных СУБД могут отличаться. Только не забудь повесить уникальный индекс.


 
Yurij-7   (2005-11-07 15:22) [11]


> зачем вам визуализировать их? почему не грузить в любой
> доступный датасет в памяти, например ClientDataSet?

чесно сказать с подобным способом нестыкался - почитаю, узнаю как.

Спасибо огромное, информации получил достаточно, буду разбираться.



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

Форум: "Базы";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.013 c
2-1133961253
MakNik
2005-12-07 16:14
2005.12.25
организация доступа к приложению


2-1133960262
fast2
2005-12-07 15:57
2005.12.25
Помогите!!! Удалил случайно проект. Но остался экзешник.


9-1122456076
Дед с Морковкой
2005-07-27 13:21
2005.12.25
Формат рисунка dds.


14-1133363403
ПЛОВ
2005-11-30 18:10
2005.12.25
аналог {$R ...}


14-1133573594
Копир
2005-12-03 04:33
2005.12.25
Русская и азиатская поэзия.





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