Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление в бд ORACLE / 25 сообщений из 43, страница 1 из 2
19.03.2018, 11:28
    #39616680
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Есть код выводит данные о введенной карте:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
begin
  repeat
    Result := ZR_Rd_GetNextMessage(g_hRd, nMsg, nMsgParam);
    if Result <> S_OK then
      break;
    case nMsg of
      ZR_RN_CARD_INSERT:
      begin
        pInfo := PZr_Card_Info(nMsgParam);
        ASSERT(pInfo <> nil);
        Writeln(format('Card insert: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
{-----} Writeln(format('Card insert: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
            
      end;
      ZR_RN_CARD_REMOVE:
      begin
        pInfo := PZr_Card_Info(nMsgParam);
        ASSERT(pInfo <> nil);
{-----} Writeln(format('Card removed: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
      end;
    end;
  until False;
  if Result = ZP_S_NOTFOUND then
    Result := S_OK;
end;


Вместо вывода на экран тут можно как нибудь добавить информацию о считываемой карте в таблицу oracle ?
...
Рейтинг: 0 / 0
19.03.2018, 12:08
    #39616710
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsqlЕсть код выводит данные о введенной карте:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
begin
  repeat
    Result := ZR_Rd_GetNextMessage(g_hRd, nMsg, nMsgParam);
    if Result <> S_OK then
      break;
    case nMsg of
      ZR_RN_CARD_INSERT:
      begin
        pInfo := PZr_Card_Info(nMsgParam);
        ASSERT(pInfo <> nil);
        Writeln(format('Card insert: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
{-----} Writeln(format('Card insert: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
            
      end;
      ZR_RN_CARD_REMOVE:
      begin
        pInfo := PZr_Card_Info(nMsgParam);
        ASSERT(pInfo <> nil);
{-----} Writeln(format('Card removed: %s %s', [
            CardTypeStrs[pInfo.nType], ZKeyNumToStr(pInfo.nNum, pInfo.nType)]));
      end;
    end;
  until False;
  if Result = ZP_S_NOTFOUND then
    Result := S_OK;
end;



Вместо вывода на экран тут можно как нибудь добавить информацию о считываемой карте в таблицу oracle ?
Можно. Вставка в БД делается командой INSERT
...
Рейтинг: 0 / 0
19.03.2018, 14:32
    #39616825
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
defecator,
Что тут не правильно?
Код: pascal
1.
form2.ADOQuery1.SQL.Text:='INTO INFO_CARD [(CARD_NUMBER)] VALUES (s);';


При выполнениии программа вылетает с ошибкой
...
Рейтинг: 0 / 0
19.03.2018, 14:51
    #39616843
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsql,

а где ключевое слово INSERT в form2.ADOQuery1.SQL.Text?
...
Рейтинг: 0 / 0
19.03.2018, 14:58
    #39616848
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
asutp2,
Код: pascal
1.
form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD [(CARD_NUMBER)] VALUES (s)';


Вот так, но оно тоже не работает:(
...
Рейтинг: 0 / 0
19.03.2018, 15:03
    #39616854
b0rk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Код: plsql
1.
INSERT INTO INFO_CARD [(CARD_NUMBER)] VALUES (s)


что-то мне кажется, что с точки зрения синтаксиса Oracle, этот запрос неправильный
...
Рейтинг: 0 / 0
19.03.2018, 15:05
    #39616855
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
b0rk
Код: plsql
1.
INSERT INTO INFO_CARD [(CARD_NUMBER)] VALUES (s)



что-то мне кажется, что с точки зрения синтаксиса Oracle, этот запрос неправильный
конечно неправильный.
...
Рейтинг: 0 / 0
19.03.2018, 15:10
    #39616859
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsql,

иногда полезно всегда нужно смотреть на текст ошибки)))) в запросе текст (s) нужно заменить на вставляемое значение
...
Рейтинг: 0 / 0
19.03.2018, 15:43
    #39616872
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
asutp2apexplsql,

иногда полезно всегда нужно смотреть на текст ошибки)))) в запросе текст (s) нужно заменить на вставляемое значение
не только. Но ещё и скобки привести к правильному виду
...
Рейтинг: 0 / 0
19.03.2018, 15:49
    #39616876
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Да и про Оракл почитать не повредит
...
Рейтинг: 0 / 0
19.03.2018, 15:58
    #39616888
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
defecator,

я вообще то надеюсь, что ТС и свои усилия приложит для решения своей проблемы, а не получит полностью разжеванное решение
...
Рейтинг: 0 / 0
20.03.2018, 08:50
    #39617207
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
asutp2,
Там нет ошибки, программа просто завершается
...
Рейтинг: 0 / 0
20.03.2018, 09:11
    #39617218
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Может ты ошибки БД просто не отлавливаешь?

PS
В Oracle SQL нет квадратных скобок. От слова вообще.
...
Рейтинг: 0 / 0
20.03.2018, 09:27
    #39617226
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsql,

Наверняка для оракла есть какой-то гуёвый клиент (сорри, никогда с ним не работал). Вот в нём набрать свой запрос и посмотреть, что будет. После того, как заработает в клиенте, можно переносить запрос в свой код.

авторПри выполнениии программа вылетает с ошибкой

Ошибка традиционно не озвучена. Возможно, что в ней всё и написано.
...
Рейтинг: 0 / 0
20.03.2018, 09:52
    #39617252
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
tru55,
Код: pascal
1.
form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD (ID,CARD_NUMBER,EVENT_DATE,CARD_INSERT) VALUES s,a,b,c';


Код: pascal
1.
form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD (ID,CARD_NUMBER,EVENT_DATE,CARD_INSERT) VALUES ''s'',''a'',''b'',''c''';


Погуглил и нашел 2 варианта, но они с ними тоже не работает
...
Рейтинг: 0 / 0
20.03.2018, 09:53
    #39617253
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
makhaon,
Нет ошибки, а просто прекращение работы программы
...
Рейтинг: 0 / 0
20.03.2018, 10:31
    #39617292
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Самое время начать использовать отладчик вместо форума.
...
Рейтинг: 0 / 0
20.03.2018, 10:34
    #39617294
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsqlПогуглил и нашел 2 варианта, но они с ними тоже не работает
Странно ты гуглишь. Оба варианта неправильны.

Кстати, выше тебе дали хороший совет. Сначала отлаживай запрос в каком-то средстве (SQL*Plus, TOAD, PL/SQL Developer, SQL Developer), а только потом пихай его в свою программу. Лично я так всегда делаю.
...
Рейтинг: 0 / 0
20.03.2018, 14:11
    #39617540
apexplsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
tru55,

Код: plsql
1.
form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD VALUES (5,7,''12.12.12'',9);'


Такой работает в самом oracl но в делфи программа всё равно прекращает работу
...
Рейтинг: 0 / 0
20.03.2018, 15:16
    #39617613
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
apexplsqltru55,

Код: plsql
1.
form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD VALUES (5,7,''12.12.12'',9);'


Такой работает в самом oracl но в делфи программа всё равно прекращает работу
может ты наконец сделаешь так и скажешь текст ошибки?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
try
  form2.ADOQuery1.SQL.Text:= 'INSERT INTO INFO_CARD VALUES (5,7,''12.12.2012'',9);';
  form2.ADOQuery1.ExecSQL;  
except
  on E: Exception do
    ShowMessage(E.ClassName + ', ' + E.Message);
end;
...
Рейтинг: 0 / 0
20.03.2018, 15:26
    #39617624
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
asutp2может ты наконец сделаешь так и скажешь текст ошибки?Будет прикольно, если окажется AV
...
Рейтинг: 0 / 0
20.03.2018, 15:33
    #39617627
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
_Vasilisk_,

ждемс)
...
Рейтинг: 0 / 0
20.03.2018, 16:44
    #39617691
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
Если вот это date
Код: plsql
1.
VALUES (5,7,''12.12.2012'',9)


('12.12.2012'), то это работает только при определенных NLS-настройках сессии, при других может и не работать. Именно поэтому рекомендуется использовать функцию to_date

PS
Работать с БД, не отлавливая ее ошибок (хоть из Delphi, хоть из любого другого средства) - это нонсенс типа хождения в темноте на ощупь. Поэтому надо сначала научиться отлавливать эти ошибки, а уж потом все остальное.
...
Рейтинг: 0 / 0
20.03.2018, 17:33
    #39617720
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
tru55Именно поэтому рекомендуется использовать функцию to_date
Ну, допустим, использовать рекомендуется вовсе не функцию to_date.... :)
...
Рейтинг: 0 / 0
20.03.2018, 17:54
    #39617732
b0rk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в бд ORACLE
softwarer,
+1
лучше через параметры
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление в бд ORACLE / 25 сообщений из 43, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]