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

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Гость
#1
Доброе время суток!

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

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

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

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

????

Гость
#2
Интерфейс хочу сделать в Builder C++ 6.0.
Он ведь не бесплатный ;) Тогда зачем бесплатная СУБД?
Если будет не больше 1000 то сойдет и access + в нем можно и интерфейс сделать.
 
B

Barmutik

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

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

Guest

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

Guest

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

http://sqlite.org
 
P

Pete

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

Olga

Гость
#7
:) посоветуйти как объявить скроллируемый курсор для одной таблицы, чтобы можно было модифицировать или удалять строки из этой таблицы. Я пробовола сделать так:
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 ?
Код:
DECLARE kurs SCROLL INSENSITIVE CURSOR
 FOR
   SELECT allstudents, deliverstudents, resultsfive,
         resultsfour, resultsthree, resultstwo
   FROM progress
   WHERE speciality='ЭВМ, комплексы, системы и сети'
 FOR UPDATE
возможно так будет правильно и будет работать :)

З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
Код:
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 ] ] ]
 
O

Olga

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

З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
Код:
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.

Может есть какие идеи на этот счет?
 
G

Guest

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

З.Ы. Я могу и ошибаться с синтаксисом (ну не люблю я TSQL), поэтому на всякий случай привиду синтаксис объявления курсора в Trasact-SQL
Код:
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

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

Olga

Гость
#11
Посоветуйте, как создать представление, в котором некоторые столбцы необходимо вычислить на основе таблицы.
Есть таблица 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)?

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

Pete

Гость
#13
скорее так:

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

Olga

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

Olga

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

Barmutik

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

????

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

Вложения

B

Barmutik

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

Dico

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

Barmutik

Гость
#20
Умный был мужик Конфуций:

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