Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Три проблемы [D6, MSSQL]


MS-REM ©   (2005-08-10 16:35:00) 

Здравствуйте УВАЖАЕМЫЕ МАСТЕРА!!!

У меня сейчас возникли проблемы, помогите, пожалуйста.

1) Сделать вычисление из двух таблиц и добавить результат в компоненту Label на SQL в DELPHI.
2) Как можно добавить дату такого типа  05-FEB-88, то есть в запросах на DELPHI.
3) Почему у  меня вот этот код не добавляет данные в таблицу или я не так понял команду?
[CODE]
     BEGIN TRANSACTION
 IF EXISTS (SELECT * FROM SALESREPS WHERE EMPL_NUM <> 105)
  BEGIN
    /* Пример добавление в таблицу SALESREPS*/
  INSERT INTO SALESREPS (EMPL_NUM, NAME, SALES)
  VALUES (105,'Bill Adams',0)

    /* Пример добавление в таблицу OFFICES*/
  INSERT INTO OFFICES (OFFICE, CITY, REGION, SALES)
  VALUES (13,'Atlanta','Eastern',0)

  END
ELSE
  BEGIN
    ROLLBACK TRANSACTION
    RETURN
  END
COMMIT TRANSACTION
[/CODE]

Без транзакций он  добавляет, а  с транзакций  не добавляет?
Что я хочу:
В общем мне нужно добавить данные в том случи если их там нет!


YK   (2005-08-12 11:43:00) [1]


> 1) Он не выдает ОШИБКУ o:
А ты сделал EMPL_NO PRIMARY_KEY ?
> 2) DateTime (MSSQL)

> 3) Типа взять из поля зарплаты и отнять выручку...

> 4) И ещё вопрос как записать такое значение в поле Money
> $300.123.00?

Если хочешь нормальных советов - напичи труктуру своих таблиц
Похоже у тебя проблемы с проектирование базы

И ещё почитай сначала книги именно про это, а потом и с SQL полегче будет :)


alex_***   (2005-08-10 18:32:00) [2]

навставляй принтов и смотри куда он входит


Anatoly Podgoretsky   (2005-08-10 17:24:00) [3]

ANB ©   (10.08.05 17:07) [6]
Книжка это не панацея.


ANB   (2005-08-10 17:07:00) [4]


> $300.123.00?
= 300123

Попробуй просто убрать rollback - он там не нужен.
Выполняешь в QA ?
И логика какая то странная. Если есть записи, кроме добавляемой, то добавлять. Иначе - rollback. Странно. Ты точно из книжки пример конопатил ?


MS-REM   (2005-08-10 16:57:00) [5]

1) Он не выдает ОШИБКУ o:
2) DateTime (MSSQL)
3) Типа взять из поля зарплаты и отнять выручку...
4) И ещё вопрос как записать такое значение в поле Money $300.123.00?

С уважением и благодарностью!!!


MS-REM   (2005-08-10 16:47:00) [6]

Не знаю так впримере было!!! Это типа ОТКАТ и конец транзакций.


alex_***   (2005-08-10 16:46:00) [7]

sorry, не заметил return. Вставил бы транзакцию внутрь EXISTS...


alex_***   (2005-08-10 16:44:00) [8]

COMMIT после ROLLBACK зачем нужен?


yk   (2005-08-10 16:41:00) [9]

EXISTS (SELECT * FROM SALESREPS WHERE EMPL_NUM <> 105)

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


> 2) Как можно добавить дату такого типа  05-FEB-88, то есть
> в запросах на DELPHI.

Дата в таблице какого типа? DATE или varchar?


> 1) Сделать вычисление из двух таблиц и добавить результат
> в компоненту Label на SQL в DELPHI.

Какого рода вычисление?


Наверх

Титульная страница Поиск, карта сайта Написать письмо