powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление в бд ORACLE
25 сообщений из 43, страница 1 из 2
Добавление в бд ORACLE
    #39616680
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 ?
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39616710
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
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
Добавление в бд ORACLE
    #39616825
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,
Что тут не правильно?
Код: pascal
1.
form2.ADOQuery1.SQL.Text:='INTO INFO_CARD [(CARD_NUMBER)] VALUES (s);';


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

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


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


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



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

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

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

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

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

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

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

Ошибка традиционно не озвучена. Возможно, что в ней всё и написано.
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617252
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Добавление в бд ORACLE
    #39617253
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon,
Нет ошибки, а просто прекращение работы программы
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617292
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое время начать использовать отладчик вместо форума.
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617294
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsqlПогуглил и нашел 2 варианта, но они с ними тоже не работает
Странно ты гуглишь. Оба варианта неправильны.

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

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


Такой работает в самом oracl но в делфи программа всё равно прекращает работу
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617613
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Добавление в бд ORACLE
    #39617624
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2может ты наконец сделаешь так и скажешь текст ошибки?Будет прикольно, если окажется AV
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617627
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

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


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

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


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