посоветуйте сервер sql

Тема в разделе "SQL", создана пользователем Guest, 29 сен 2004.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Доброе время суток!

    Стоит такая задача:

    Сделать базу данных машин.
    Поля: марка, технические данные, производитель.
    Функции: добавление, редактирование, удаление, просмотр и поиск информации.

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

    Интерфейс хочу сделать в Builder C++ 6.0.
     
  2. ????

    ???? Гость

    Он ведь не бесплатный ;) Тогда зачем бесплатная СУБД?
    Если будет не больше 1000 то сойдет и access + в нем можно и интерфейс сделать.
     
  3. Barmutik

    Barmutik Гость

    Однозначно MS Access... это хоть и не sql-server... но на массивах информации до 50.000 записей будет работать отлично.

    Большой плюс в MS Access если потом захочеш кому-нить продать\подарить\поставить свою програму то не будет больших проблем с установкой, в отличие от случая если воспользуешся тяжеловесной СУБД.
     
  4. Guest

    Guest Гость

    А еще можно не использовать sql-сервер вообще, а посмотреть в сторону встраиваемых баз данных. Например, Беркли ДБ (Berkeley DB) - сайт www.sleepycat.com.
     
  5. Guest

    Guest Гость

    Советую SQLite.
    Библиотека (200 Кб), встраиваемая в любой проект, и работающая ОЧЕНЬ быстро.
    Поддерживает почти всю спецификацию SQL и хранящая информацию в одном файле.

    http://sqlite.org
     
  6. Pete

    Pete Гость

    Можно вопрос поточнее сформулировать? А то под заданные требования подпадает слишком большое число БД: Firebird, MySql, MaxDB, Postgres, Oracle, Mssql все равно никто не узнает и их можно считать бесплатными =)
    А вообще советую следовать по схеме: определение требований к системе в целов, определение главнейших требуемых характеристик к бд (можно даже баллы расставлять по важности), поиск продукта удовлетворяющего требованиям в максимальной степени. От бессистемности все беды проектов.
     
  7. Olga

    Olga Гость

    :) посоветуйти как объявить скроллируемый курсор для одной таблицы, чтобы можно было модифицировать или удалять строки из этой таблицы. Я пробовола сделать так:
    DECLARE kurs SCROLL INSENSITIVE CURSOR
    FOR
    SELECT allstudents, deliverstudents, resultsfive,
    resultsfour, resultsthree, resultstwo
    FROM progress
    WHERE speciality='ЭВМ, комплексы, системы и сети'
    OPEN kurs
    FETCH ABSOLUTE 4 FROM kurs

    но когда пытаюсь удалить устроку:
    DELETE FROM progress
    WHERE CURRENT OF kurs

    вылазиет ошибка выдается ошибка:

    The cursor is READ ONLY.

    Может кто мне посоветует, пожалуйста, курсач горит!!!
     
  8. ????

    ???? Гость

    Olga
    А кто же объявит FOR UPDATE ?
    Код (Text):
    DECLARE kurs SCROLL INSENSITIVE CURSOR
     FOR
       SELECT allstudents, deliverstudents, resultsfive,
             resultsfour, resultsthree, resultstwo
       FROM progress
       WHERE speciality='ЭВМ, комплексы, системы и сети'
     FOR UPDATE
    возможно так будет правильно и будет работать :)

    З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
    Код (Text):
    DECLARE cursor_name CURSOR
    [ LOCAL | GLOBAL ]
    [ FORWARD_ONLY | SCROLL ]
    [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
    [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
    [ TYPE_WARNING ]
    FOR select_statement
    [ FOR UPDATE [ OF column_name [ ,...n ] ] ]
     
  9. Olga

    Olga Гость

    <!--QuoteBegin-????+18:10:2004, 03:14 -->
    <span class="vbquote">(???? @ 18:10:2004, 03:14 )</span><!--QuoteEBegin-->Olga
    А кто же объявит FOR UPDATE ?
    Код (Text):
    DECLARE kurs SCROLL INSENSITIVE CURSOR
       FOR
           SELECT allstudents, deliverstudents, resultsfive,
                       resultsfour, resultsthree, resultstwo
           FROM progress
           WHERE speciality='ЭВМ, комплексы, системы и сети'
       FOR UPDATE
    возможно так будет правильно и будет работать :)

    З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
    Код (Text):
    DECLARE cursor_name CURSOR
    [ LOCAL | GLOBAL ]
    [ FORWARD_ONLY | SCROLL ]
    [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
    [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
    [ TYPE_WARNING ]
    FOR select_statement
    [ FOR UPDATE [ OF column_name [ ,...n ] ] ]
    [/quote]
    Спасибо вам большое за уделенное мне внимание, написала я так:

    DECLARE kurs CURSOR SCROLL
    FOR
    SELECT allstudents, deliverstudents, resultsfive,
    resultsfour, resultsthree, resultstwo
    FROM progress
    WHERE speciality = 'ЭВМ, комплексы, системы и сети'
    FOR UPDATE

    но все равно выдается ошибка:

    Server: Msg 16957, Level 16, State 4, Line 3
    FOR UPDATE cannot be specified on a READ ONLY cursor.

    Может есть какие идеи на этот счет?
     
  10. Guest

    Guest Гость

    <!--QuoteBegin-????+18:10:2004, 03:14 -->
    <span class="vbquote">(???? @ 18:10:2004, 03:14 )</span><!--QuoteEBegin-->Olga
    А кто же объявит FOR UPDATE ?
    Код (Text):
    DECLARE kurs SCROLL INSENSITIVE CURSOR
       FOR
           SELECT allstudents, deliverstudents, resultsfive,
                       resultsfour, resultsthree, resultstwo
           FROM progress
           WHERE speciality='ЭВМ, комплексы, системы и сети'
       FOR UPDATE
    возможно так будет правильно и будет работать :)

    З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
    Код (Text):
    DECLARE cursor_name CURSOR
    [ LOCAL | GLOBAL ]
    [ FORWARD_ONLY | SCROLL ]
    [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
    [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
    [ TYPE_WARNING ]
    FOR select_statement
    [ FOR UPDATE [ OF column_name [ ,...n ] ] ]
    [/quote]
    И знаете, что я сделала? Вот (и у меня все получилось!!!):
    DECLARE kurs CURSOR SCROLL DYNAMIC
    FOR
    SELECT allstudents, deliverstudents, resultsfive,
    resultsfour, resultsthree, resultstwo
    FROM progress
    WHERE speciality='ЭВМ, комплексы, системы и сети'
    FOR UPDATE
    OPEN kurs

    FETCH FIRST FROM kurs
    FETCH NEXT FROM kurs
    FETCH NEXT FROM kurs
    FETCH NEXT FROM kurs
    DELETE FROM progress
    WHERE CURRENT OF kurs

    FETCH FIRST FROM kurs
    FETCH NEXT FROM kurs
    FETCH NEXT FROM kurs
    UPDATE progress
    SET discipline='ТАУ'
    WHERE CURRENT OF kurs

    CLOSE kurs

    Спасибо вам огромное!!!!!!!!!!!!!!!!!!!!
    Я вам очень признательна!!!!!!!
     
  11. Olga

    Olga Гость

    Посоветуйте, как создать представление, в котором некоторые столбцы необходимо вычислить на основе таблицы.
    Есть таблица Delivery, в которой столбы Qty, Price и др., а в представлении нужно, чтобы один из столбцов SumDeliv был равен произведению значений Qty и Price.

    Пишу так, но это не верно
    CREATE VIEW predst_DispDeliv
    (DelivID, SupName, SumDeliv, Weight)
    AS
    SELECT DelivID FROM Delivery,
    SupName FROM Supplier,
    SumDeliv FROM Delivery WHERE SumDeliv:=Qty*Price,
    Weight FROM Detail WHERE Weight:=Qty*Weight/1000,

    А еще выдается ошибка
    Server: Msg 156, Level 15, State 1, Procedure predst_DispDeliv, Line 6
    Incorrect syntax near the keyword 'FROM'.

    Пробовала по другому:
    CREATE VIEW predst_DispDeliv
    (DelivID, SupName, SumDeliv, Weight)
    AS
    SELECT DelivID, SupName, SumDeliv, Weight
    FROM Delivery,Supplier
    WHERE SumDeliv:=Qty*Price AND Weight:=Qty*Weight/1000

    тогда ошибка
    Server: Msg 170, Level 15, State 1, Procedure predst_DispDeliv, Line 6
    Line 6: Incorrect syntax near 'SumDeliv:'.

    Может быть кто-то мне подскажет, что я неправильно делаю?
     
  12. ????

    ???? Гость

    Olga
    Было бы неплохо увидеть представление без вычисляемого столбца или структуру(описания) таблиц.

    Я вижу таблицы Delivery, Supplier, Detail. Как они связаны (PK, FK)?

    Попробуй что-то типа
    Код (Text):
    CREATE VIEW predst_DispDeliv
    (DelivID, SupName, SumDeliv, Weight)
    AS
    SELECT DelivID, SupName, SumDeliv, Weight, Qty*Price
    FROM Delivery, Supplier
     
  13. Pete

    Pete Гость

    скорее так:

    Код (Text):
    CREATE VIEW predst_DispDeliv
    (DelivID, SupName, SumDeliv, normWeight)
    AS
    SELECT DelivID, SupName, Qty*Price, Weight / 1000,
    FROM Delivery, Supplier
    Уважаемая, Ольга, я бы вам настоятельно рекомендовал почитать какую-нибудь книгу или спецификацию на язык SQL, так как то, что вы пишете, от стандарта очень далеко. Вы будете долго мучаться с разного рода синтаксическими ошибками... RTFM, RTFM, RTFM
     
  14. Olga

    Olga Гость

    Доброе время суток!!!
    В прошлый раз все вы мне очень помогли, за что большое спасибо!!
    На сей раз не знаю как сделать пояснения в диаграмме базы данных.
    Т.е., нужно чтобы на диаграмме около каждой таблцы было пояснение типа "переменная типа integer" или что-то вроде этого.
    Если есть какие-то идеи - подскажите, пожалуйста, или киньте ссылочку хорошего сайта, если можно.
    Заранее всем благодарна.
     
  15. Olga

    Olga Гость

    Доброе время суток!!!
    В прошлый раз все вы мне очень помогли, за что большое спасибо!!
    На сей раз не знаю как сделать пояснения в диаграмме базы данных.
    Т.е., нужно чтобы на диаграмме около каждой таблцы было пояснение типа "переменная типа integer" или что-то вроде этого.
    Если есть какие-то идеи - подскажите, пожалуйста, или киньте ссылочку хорошего сайта, если можно.
    Заранее всем благодарна.
     
  16. Barmutik

    Barmutik Гость

    А с помощью какого продукта создана схема базы данных? Большинство продуктов (например Erwin, PowerDesigner) позволяют писать комментарии к таблицам в схеме...
     
  17. ????

    ???? Гость

    Barmutik
    Я понимаю, Olga имела в виду Database Designer. Только как в нем делать пояснения я не знаю, и посмотреть не могу.
     

    Вложения:

    • dv3w7c1.gif
      dv3w7c1.gif
      Размер файла:
      13 КБ
      Просмотров:
      67
  18. Barmutik

    Barmutik Гость

    Ааа.. ну могу тогда посоветовать использовать мощные :huh: ... специализированные средства для этого... там всё можно...
     
  19. Dico

    Dico Гость

    Лучше Oracle не найдёш. А на счёт бесплатности(будто ты покупаеш софт у Softline)за 7000б.р взял на Жданах и всё работает.А если нет то и Access подайдёт.
     
  20. Barmutik

    Barmutik Гость

    Умный был мужик Конфуций:

    Не надо стрелять из пушки по воробьям!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей