S. D. F. - [7]

Шрифт
Интервал

( cnum integer,

cname char (10),

city char (10),

rating integer,

snum integer );

CREATE TABLE Orders

( onum integer,

amt decimal,

odate date,

cnum integer,

snum integer );

«конец кода»

- 3. Тут есть нюанс, который я еще не понял, но после создания таблицы, она не активна!?! Потом попробуешь, и возможно найдешь красивое решение. А пока закрой программу, затем запусти ее вновь и открой свою базу. Этого достаточно.

- 4. Сделай следующий файл и выполни:

«начало кода»

INSERT INTO Salespeople (snum,sname,city ,comm)

VALUES (1001,'Peel','London',.12);

INSERT INTO Salespeople (snum,sname,city ,comm)

VALUES (1002,'Serres','San Jose',.13);

INSERT INTO Salespeople (snum,sname,city ,comm)

VALUES (1004,'Motika','London',.11);

INSERT INTO Salespeople (snum,sname,city ,comm)

VALUES (1007,'Rifkin','Barcelona',.15);

INSERT INTO Salespeople (snum,sname,city ,comm)

VALUES (1003,'Axelrod','New York',.10);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2001,'Hoffman','London',100,1001);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2002,'Giovanni','Rome',200,1003);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2003,'Liu','San Jose',200,1002);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2004,'Grass','Berlin',300,1002);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2006,'Clemens','London',100,1001);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2008,'Cisneros','San Jose',300,1007);

INSERT INTO Customers (cnum,cname,city,rating,snum)

VALUES (2007,'Pereira','Rome',100,1004);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3001,18.69,'10/03/1990',2008,1007);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3003,767.19,'10/03/1990',2001,1001);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3002,1900.10,'10/03/1990',2007,1004);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3005,5160.45,'10/03/1990',2003,1002);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3006,1098.16,'10/03/1990',2008,1007);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3009,1713.23,'10/04/1990',2002,1003);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3007,75.75,'10/04/1990',2004,1002);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3008,4723.00,'10/05/1990',2006,1001);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3010,1309.95,'10/06/1990',2004,1002);

INSERT INTO Orders (onum,amt,odate,cnum,snum)

VALUES (3011,9891.88,'10/06/1990',2006,1001);

«конец кода»

- Все должно пройти хорошо.

* Брюки превращаются, превращаются брюки… в элегантную базу данных. Все ОК.

- Теперь заготовка базы у нас есть, и мы можем выполнять запросы из книги [1] выполнятся будут 3 задачи:

- 1. Самообучение SQL.

- 2. Вычитывание книги (с исправлением опечаток)

- 3. Тестирование программы.

* Значит теперь, со всеми переделками, программа сможет выполнить любой запрос?

- Это предстоит проверить.

Прошло три дня.

- Нет, ребята, пулемета я вам не дам.

- В книге оказалось, очень много ошибок. Ну, очень много ошибок, и все они полезные.

* Догадываюсь, задумано издевательство.

- Точно! Мне так понравилась идея с ошибками, что я задумался, не наделать их и в этом тексте.

* Вот этого, не надо!

- Хорошо, но ошибки неизбежны, где-то что-то я упущу, в этом случае я сделаю вид, что все так и задумано…

* Ну, ты и жук!

- Учись, студент. Учись, как сдавать программу заказчику, главное держать невозмутимое выражение морды лица: “Как, при запуске программы включилось форматирование диска? Ну, это у вас устаревший Windows, давайте я его переставлю, это будет стоить… что, при этом утеряны данные за 3 года работы. Но, это же хорошо (хорошо-то хорошо, да ничего хорошего – что бы еще соврать) – Слава, Богу, это был только сон…”

* Хе-хе, ну у тебя и шуточки. Давай все-таки вернемся к книге [1].

- Да! Как я уже раньше думал сказать, если бы все примеры в книге были бы без ошибок, пользы от нее было бы намного меньше. Копируй запросы, выполняй, проверяй результат… скучно. А тут, наполненная описками жизнь бурлит и хлещет.

* И какие там ошибки?

- Например:

SELECT sname, sity

FROM Salespeople;

WHERE city=LONDON;

или еще:

SELECT * FROM Order WHERE NOT

((odate=10/03/1990 AND cnum < > 1002)OR amt > 2000.00);

- Тут пару ошибок достаточно очевидны (лишний символ “;” и нет апострофов вокруг даты ну и прочее, и прочее.

- В процессе поиска ошибок, возникла потребность изменить программу. А именно, при ошибке выводится сообщение, и часто там указывается на какой строке, и в какой позиции найдена ошибка. Проблема в том, что на исполнение мы даем запрос одной строкой, и соотнести место ошибки, с тем, что на экране…

- Посему, изменяем RunSQL

В разделе переменных добавляем:

LPos : integer;  // позиция ошибки

- Между строками 330 и 340 добавляем текст:

330   begin // была ошибка

331  Memo1.Clear;

332  Memo1.Lines.Add(S); // перезапись запроса одной строкой

333  LPos := GetSelStart(Mistake); // поиск места ошибки

334  if LPos > -1 then  begin

335     Memo1.SelStart := LPos-1; // вкл индикатора

336     Memo1.SelLength := 1;

337     Memo1.SetFocus;

338      Panel5.Caption := IntToStr(LPos); // дополнительная информ.


Еще от автора W Cat
Задачник по программированию для школы

Задачи для школьника, должны быть веселы!На наших занятиях, запрещена фраза "мы это не проходили" - если это надо для решения задачи - "пройди", источников море, учитель подскажет.Не получается? Возможно, ты выбрал задачу не по силам, ничего - это тоже опыт, отложи, попробуй следующую. Мало решить задачу, придумай свою...Ученик должен уметь: (поставить задачу + решить задачу + учиться) * n ...


Система Диофанта

Если вы хотите поразить одноклассников молниеносным решением квадратных уравнений [КУ], давайте развлечемся.


Рекомендуем почитать
И все-таки мир прекрасен...

Что может быть хуже, чем увидеть своего парня с другой? Конечно, послушать сумасшедшего ученого, зайти в портал и в следствии чего попасть в другой мир! Но как же примет меня новый мир: враждебно или с распростертыми объятиями?.. Есть ли у меня шанс вернуться домой или, может, мое счастье живет именно здесь?..


Зверь

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


Невесты Моего Принца

Эмми по уши влюблена. Да еще и в принца. Только вот любимому ее надо выбрать себе жену королевской крови. Да не просто выбрать, а спасти ее из лап дракона/колдуна/злой ведьмы - на выбор. Не важно кого и как. Главное: спасенная принцесса. Вот и отправляются Эмми, которую принц считает другом-оруженосцем, и ее принц на поиски любви во имя трона. Но, в отличие от возлюбленного, в планы Эмми вовсе не входит помощь в поисках невест...


Жлобские хроники

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


Болтун

Споры до добра не доводят. Известно всем. Вот я например знаю что спорить мне категорически противопоказано. Но не удержался и в итоге вынужден играть в онлайновую виртуалку. Причем не как нормальные люди, а с убитыми в ноль показателями "сила", "ловкость" и "выносливость". Зато с задранными до максимума очарованием и харизмой. Вы когда-нибудь пробовали убедить волка не есть вас? А убегать от толпы зайцев не поддавшихся вашей ослепительной улыбке? А очаровывать толпу гоблинов? Нет? И не надо. А ведь надо еще как-то прокачиваться аж до 30 уровня.


Оцифрованная реальность

Далекое (а может и не очень) будущее. Наноматериалы, компьютерные технологии, роботы, искины. Последние все чаще заменяют собой живое человеческое общение. Друг, который всегда рядом, что может быть заманчивее?У Марины - собственный бизнес, уютная квартира, даже пушистый кот имеется. Вот только парня нет. Не получается, не складывается. Не везет? Возможно. А ей, похоже, никто и не нужен. Ведь у нее есть Федька. Остроумный, находчивый, веселый, красивый, дерзкий, обаятельный. Немного хам и грубиян, но Марине он нравится и таким.