powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление в бд ORACLE
43 сообщений из 43, показаны все 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
Добавление в бд ORACLE
    #39617794
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsql,

если отладчик по какой-то причине не доступен, можешь взять сторонние средства: EurekaLog или Mad Except, что бы словить ошибки.
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617948
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617961
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
apexplsqlasutp2,


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

AV говорит о том, что скорее всего не создан экземпляр form2
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39617997
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Со дна я вытащил живого партизана,
Не знал он, бедный, что закончилась война"
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618019
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,
Я так понял консоль не работает с формой, а можно её как то присоединить ?
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618027
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
apexplsqlasutp2,
Я так понял консоль не работает с формой, а можно её как то присоединить ?
С формой работает т.к. переменные выводятся с формы на консоль. В чем может быть ещё ошибка ?
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618050
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsql,

предлагаю показать здесь полностью весь dpr-файл проекта
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618055
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Будет прикольно, если окажется AVapexplsqlasutp2,
Где мой золотой хрустальный шар?
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618058
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
program EnumCards;

{$APPTYPE CONSOLE}


uses
  Vcl.Forms,
  Windows,
  SysUtils,
  SyncObjs,
  ActiveX,
  ZBase,
  Dialogs,
  ZPort,
  ZReader,
  ZRClasses,
  Utils,
  DateUtils,
  Unit2 in 'Unit2.pas' {Form2};

type
  TForm2 = class(TForm)

  end;
const
  RdPortType = ZP_PORT_COM;
  RdPortName = 'COM5';
var
   g_hRd: THandle;  // Дескриптор устройства
  g_oEvent: TEvent = nil;
  g_fThreadActive: Boolean;
  g_hThread: THandle = 0;



function CheckNotifyMsgs(): HResult;
var
  s: integer;
  a: integer;
  b: string;
  c: integer;
  nMsg: Cardinal;
  nMsgParam: NativeInt;
  pInfo: PZR_CARD_INFO;
begin
      s:=5;
      a:=7;
      b:= '12.12.12';
      c:=9;

  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(s);
              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;

      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;


function NotifyThreadProc(AParameter: Pointer): Cardinal; stdcall;
begin
  while g_fThreadActive do
		if g_oEvent.WaitFor() = wrSignaled then
    begin
			g_oEvent.ResetEvent();
      if g_hRd <> 0 then
        CheckNotifyMsgs();


    end;
  Result := 0;
end;

procedure StartNotifyThread();
var
  nThreadId: Cardinal;
begin
  if g_hThread <> 0 then
    Exit;
  g_fThreadActive := True;
  g_hThread := CreateThread(nil, 0, @NotifyThreadProc, nil, 0, nThreadId);
end;

procedure StopNotifyThread();
begin
  if g_hThread = 0 then
    Exit;
  g_fThreadActive := False;
  g_oEvent.SetEvent();
  WaitForSingleObject(g_hThread, INFINITE);
  CloseHandle(g_hThread);
end;

procedure DoTest();
var
  rOpen: TZr_Rd_Open_Params;
  rRdInf: TZr_Rd_Info;
  rNS: TZr_Rd_Notify_Settings;
  nCardCount: Integer;
  hr: HResult;
  rInfo: TZr_Card_Info;
  traa:integer;
begin
  traa:=55;
  SetConsoleOutputCP(1251); // Переключение консоли на кодовую страницу CP1251 (Windows-1251).

  if not CheckZRVersion() then
  begin
    Writeln('Wrong version SDK.');
    Readln;
    exit;
  end;

  CheckZRError(ZR_Initialize(ZP_IF_NO_MSG_LOOP or ZP_IF_LOG));
  try
    Writeln(format('Open reader (%s)...', [RdPortName]));
    FillChar(rOpen, SizeOf(rOpen), 0);
    rOpen.pszName := PChar(RdPortName);
    rOpen.nType := RdPortType;
    FillChar(rRdInf, SizeOf(rRdInf), 0);
    CheckZRError(ZR_Rd_Open(g_hRd, rOpen, @rRdInf));

    Writeln(format('%s, sn: %d, v%d.%d', [
        ReaderTypeStrs[rRdInf.nType],
        rRdInf.rBase.nSn,
        rRdInf.rBase.nVersion and $ff, (rRdInf.rBase.nVersion shr 8) and $ff]));

    Writeln('Search cards...');
    Writeln(tra);
    nCardCount := 0;
    CheckZRError(ZR_Rd_SearchCards(g_hRd));
    repeat
      hr := ZR_Rd_FindNextCard(g_hRd, @rInfo);
      if hr <> S_OK then
        break;
      Inc(nCardCount);
      Writeln(format('%d. Type: %s; Number: %s', [
          nCardCount, CardTypeStrs[rInfo.nType], ZKeyNumToStr(rInfo.nNum, rInfo.nType)]));
    until False;
    CheckZRError(hr);
    ZR_Rd_FindNextCard(g_hRd, nil);

    Writeln('--------------');
    if nCardCount > 0 then
      Writeln(format('Found %d cards', [nCardCount]))
    else
      Writeln('Cards not found.');

    // Настраиваем уведомления
    g_oEvent := TEvent.Create(nil, True, False, '');
    FillChar(rNS, SizeOf(rNS), 0);
    rNS.nNMask := ZR_RNF_EXIST_CARD;
    rNS.hEvent := g_oEvent.Handle;
    CheckZRError(ZR_Rd_SetNotification(g_hRd, @rNS));
    StartNotifyThread();
    Writeln('Wait card...');
    Readln;
  finally
    StopNotifyThread();
    if g_hRd <> 0 then
      Zr_CloseHandle(g_hRd);
    if g_oEvent <> nil then
      g_oEvent.Free();
    ZR_Finalyze();
  end;
end;

begin


      with Unit2.TForm2.Create(nil) do

  try
    { TODO -oUser -cConsole Main : Insert code here }

    DoTest();
  except
    on E: Exception do
    begin
      Writeln(E.ClassName, ': ', E.Message);
      Readln;
    end;
  end;
end.
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618066
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsqlС формой работает т.к. переменные выводятся с формы на консоль. В чем может быть ещё ошибка ?
В приведённом коде нет создания экземпляра Form2. Есть только использование этого экземпляра, что приводит к ошибке доступа.
Экземпляр нужно примерно так создавать:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Form2 := TForm2.Create(nil);
try
  // использование
  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;
finally
  FreeAndNil(Form2);
end;
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618068
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
goldmi45apexplsqlС формой работает т.к. переменные выводятся с формы на консоль. В чем может быть ещё ошибка ?
В приведённом коде нет создания экземпляра Form2.

есть там создание:

Код: pascal
1.
  with Unit2.TForm2.Create(nil) do
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618069
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
только это не то создание, которое у тебя ))))
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618079
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо Form стоит использовать DataModule. Но его тоже следует создавать.
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618094
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
экземпляр формы создается вызовом
Код: pascal
1.
with Unit2.TForm2.Create(nil) do

но переменной form2 этот экземпляр не присваивается. Вот и AV.

для быстрых костылей можно переписать так:
Код: pascal
1.
2.
Unit2.form2 := TForm2.Create(nil);
with Unit2.form2 do



Хотя за такое я бы сам себя уволил бы)))
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618126
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,
Но так как вы написали ошибка: [dcc32 Error] EnumCards.dpr(229): E2010 Incompatible types: 'Unit2.TForm2' and 'EnumCards.TForm2'
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618138
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsql,

удали в dpr-файле строки
Код: pascal
1.
2.
3.
4.
type
  TForm2 = class(TForm)

  end;
...
Рейтинг: 0 / 0
Добавление в бд ORACLE
    #39618178
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,
Так появляется ошибка что не вызван CoInitialize.
А если добавить CoInitialize(Nil); сюда:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
 CoInitialize(Nil);
              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
43 сообщений из 43, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Добавление в бд ORACLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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