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

Вниз

SQL?   Найти похожие ветки 

 
DROWSY ©   (2006-10-16 21:26) [0]

SQL?

Есть таблица Test.DBF

----------------
I COD I  NAME  I
------I--------I
I 2     I N_21   I
I 5     I N_11   I
I 4     I N_51   I
I 7     I N_1     I
I 15    I N_61   I
I 1     I  N_14  I

I----------------I

Как по-умному скопировать несколько записей в конец таблицы с увеличением кода, т.е.,
к примеру скопировать 2и3-ю записи, так, чтобы получилось:

----------------
I COD I  NAME  I
------I--------I
I 2     I N_21   I
I 5     I N_11   I  <-
I 4     I N_51   I  <-
I 7     I N_1     I
I 15    I N_61   I
I 1     I  N_14  I

I 16     I N_11   I  <------
I 17     I N_51   I  <------

I----------------I

Наверное, надо создать SQL - запрос, который выделит эти записи, вычислит максимальный код.
И результирующие записи добавить к исходной таблице, увеличивая значение поля COD.
Если это так, то, плиз,напишите как сформировать такой запрос?
Если можно сделать как-то грамотнее, то как??


 
Ketmar ©   (2006-10-16 21:33) [1]

что за манера -- пинать DBF через SQL? вместо того, чтобы взять нормальный сервер БД? ну, сделай "select max(cod) from mytable" и потом добавляй с увеличением.


 
DROWSY ©   (2006-10-16 21:56) [2]

Похоже, что здесь Вы, уважаемый Ketmar, указываете на что-то принципиально неправильное в моей работе с базами DBF.
Жаль, что я не понимаю, что значит

> пинать DBF через SQL

И что значит

> взять нормальный сервер БД

Если не лень, можно чуть подробнее?


 
Ketmar ©   (2006-10-16 22:16) [3]

я пытаюсь намекнуть на то, что если уж используется SQL, то стоит уйти от BDE и формата DBF. и использовать нечто вроде Interbase/FireBird/MSSQL/Oracle/...


 
DROWSY ©   (2006-10-16 22:27) [4]

Дело в том, что я клепаю программу, которая работает с кучей (около30) файлов DBF,
которые юзались в незапамятные времена в программах под  Clipper.
Считаете, что мне стоит поступить так: написать программу перевода всех файлов DBF  в другой формат (какой?) и работать с
> Interbase/FireBird/MSSQL/Oracle/...

(какой сервер посоветуете?)
Или как бы Вы поступили?


 
Ketmar ©   (2006-10-16 22:31) [5]

я бы собрал всё в нормальную базу. тот же FireBird (потому что бесплатно и можно). т.е сделал бы конвертер. автоматом получаем ещё и "мультьпользовательность". %-)

если база не очень большая -- я бы использовал SQLite, как маленькую, простую и надёжную альтернативу.

а в подобных базах есть поле типа "автоинкремент", которое задачу реализует автоматически.

как-то вот так примерно.


 
DROWSY ©   (2006-10-16 23:08) [6]

Я уже довольно много написал через BDE
:((
Но ещё много предстоит.
Ваше экспертное мнение:
- стоит, пока не поздно :)) , заняться уходом от BDE?
- В нормальной базе проще работать чем с BDE?
Интересно:
- конвертер сложно смастерить, или есть стандартные средства?
- сильно заморочно будет "перелопатить" уже сделанное под BDE?
- если у Вас есть "под рукой" готовые ссылки, где можно познакомиться с основами FireBird и SQLite, укажите, плиз...


 
Zacho ©   (2006-10-16 23:22) [7]

DROWSY ©   (16.10.06 23:08) [6]
- стоит, пока не поздно :)) , заняться уходом от BDE?


Стоит, поскольку BDE уже практически мертво. Стоит ли в этом конкретном случае - не знаю, т.к. затраты по времени будут приличные (если конечно хочешь всё сделать "как надо" а не тяп-ляп побыстрее, что бы "хоть как-то" работало.

> - В нормальной базе проще работать чем с BDE?

Ну, BDE все-таки не база, а универсальная библиотека для работы с различными СУБД, и вполне нормальная, только устаревшая. Но это я так, буквоедствую :)
А насчёт "проще-сложнее" - в общем случае определить нельзя, везде своя специфика.

> - конвертер сложно смастерить, или есть стандартные
> средства?

Есть стандартные, например, входящий в Дельфи DataPump

>  сильно заморочно будет "перелопатить" уже сделанное
> под BDE?

Если хочешь получить действительно хороший результат, то скорее всего переделывать придётся всё, и приложения и структуру БД.

> если у Вас есть "под рукой" готовые ссылки, где можно
> познакомиться с основами FireBird

http://www.ibase.ru


 
DROWSY ©   (2006-10-16 23:28) [8]

Спасибо Ketmar и Zacho.!
Жаль, что год назад не мог с вами посоветоваться.. :((


 
Ketmar ©   (2006-10-16 23:41) [9]

суммируя: переходи, пока не поздно. потратишь времени, конечно, но потом будешь вспоминать своё решение добрыми словами. лучше сейчас, нежели через некоторое время переписывать весь проект.


 
DROWSY ©   (2006-10-16 23:57) [10]

Да, почитаю FireBird для начала
Я,если честно, очень слабо представляю вообще что такое "нормальный сервер БД". Год назад надо было сделать прожку с использованием Dbf файлов. Связался с BDE. Потом прога разрасталась....
Оказыватся, плохо начал... :))
С ужасом думаю, что придётся всё перелопачивать...


 
Zacho ©   (2006-10-17 00:01) [11]

DROWSY ©   (16.10.06 23:57) [10]

Если собираешься работать с FB или любым другим сервером РСУБД, то для начала советую прочитать К.Дж.Дейт "Введение с системы баз данных"


 
DROWSY ©   (2006-10-17 00:07) [12]

Да, конечно, надо осваивать серьёзную СУБД!


 
Zacho ©   (2006-10-17 00:12) [13]

Zacho ©   (17.10.06 0:01) [11]

Хм.. Очепятка.. Конечно, "Введение в системы баз данных"


 
Ketmar ©   (2006-10-17 00:27) [14]

>[10] DROWSY(c) 16-Oct-2006, 23:57
>С ужасом думаю, что придётся всё перелопачивать...
да ничего там особо страшного нет. %-)


 
DROWSY ©   (2006-10-17 00:37) [15]

Боюсь работодатель не поймёт моих новаций... :)
Придётся тащить старую версию и перестраивать проект параллельно... :((



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

Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.036 c
2-1160467962
Монг
2006-10-10 12:12
2006.10.29
Как узнать из какой формы вызвана форма ?


15-1159959558
Knight
2006-10-04 14:59
2006.10.29
Есть компонент в котором реализуется функциона из статьи Роуза?


4-1150222081
kliman
2006-06-13 22:08
2006.10.29
Перехват комбинации клавиш


15-1160463589
*Стажер*
2006-10-10 10:59
2006.10.29
Mandrake Linux


2-1160679155
Incognito
2006-10-12 22:52
2006.10.29
Память, сжираемая приложением.





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