Lazarus + MSSQL - błąd w pętli

0

Mam problem z SQL'em (łącze się poprzez ODBC) w Lazarusie:

Chodzi o to, że mam taką pętlę:

append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+(utf8tocp1250(' Rozpoczęcie pętli - odczyt z tabeli sklepów')));   closefile(logi);
For i:=1 to StringGrid3.RowCount-1 do
   Begin
		append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+utf8tocp1250(' Pętla numer: '+inttostr(i)));   closefile(logi);
		SQLQuery1.Close;
		SQLQuery1.SQL.Clear;
		zapytanie:=Concat('select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE '''+ utf8tocp1250(StringGrid3.Cells[1,i])+'''');
		append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Zapytanie SQL: '+zapytanie);   closefile(logi);
		SQLQuery1.SQL.Add(zapytanie);   
		SQLQuery1.Open;
		IdKontrahenta:=SqlQuery1.Fields[0].AsString;
		append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' ID kontrahenta: '+IdKontrahenta);   closefile(logi);

		SQLQuery1.Close;                
		SQLQuery1.SQL.Clear;           
		zapytanie:=Concat('select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid='+IdKontrahenta);
		append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Zapytanie SQL: '+zapytanie);   closefile(logi);
		SQLQuery1.SQL.Add(zapytanie);  
		SQLQuery1.Open;


		append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+(utf8tocp1250(' Rozpoczęcie pętli - odczyt dokumentów kontrahenta')));   closefile(logi);
		While not SQLQuery1.Eof do
           Begin
              append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+(utf8tocp1250(' START')));   closefile(logi);
              dok_kon:=SqlQuery1.Fields[0].AsString;
              
              SQLQuery4.Close;                
              SQLQuery4.SQL.Clear;            
              zapytanie:=Concat('select dok_id from ne_dokumenty where dok_id='+dok_kon);
              append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Zapytanie SQL: '+zapytanie);   closefile(logi);
              SQLQuery4.SQL.Add(zapytanie);   
              SQLQuery4.Open;
              ne_id_dok:=SqlQuery4.Fields[0].AsString;
              append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Znaleziony dokument: '+ne_id_dok);   closefile(logi);
              If ne_id_dok='' then
                 Begin
                  append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Dokumentu nie ma w bazie - dodaje go');   closefile(logi);
                  zapytanie2:=('INSERT INTO['+BAZA_DANYCH+'].[dbo].[ne_dokumenty]'+#13#10);
                  zapytanie2:=concat(zapytanie2+'([dok_id]'+#13#10);
                  zapytanie2:=concat(zapytanie2+',[dok_nr]'+#13#10);
                  zapytanie2:=concat(zapytanie2+',[exp]'+#13#10);
                  zapytanie2:=concat(zapytanie2+',[dook_kont])'+#13#10);
                  zapytanie2:=concat(zapytanie2+'VALUES'+#13#10);
                  zapytanie2:=concat(zapytanie2+'('+SqlQuery1.Fields[0].AsString+#13#10);
                  zapytanie2:=concat(zapytanie2+','''+SqlQuery1.Fields[1].AsString+''''+#13#10);
                  zapytanie2:=concat(zapytanie2+',0'+#13#10);
                  zapytanie2:=concat(zapytanie2+','+SqlQuery1.Fields[2].AsString+')');
                   SQLQuery2.Close;                
                   SQLQuery2.SQL.Clear;           
                   SQLQuery2.SQL.Add(zapytanie2);   
                   append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+' Zapytanie SQL: '+zapytanie2);   closefile(logi);
                   SQLQuery2.ExecSQL;
                 End;
             SQLQuery1.Next;
             append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+(utf8tocp1250(' KONIEC - NEXT')));   closefile(logi);
           end;

   append(logi); czas:=(TimeToStr(Time));   writeln(logi,czas+(utf8tocp1250(' Koniec pętli - odczyt z tabeli sklepów')));   closefile(logi);
   end;  
 

Po odczycie loga który tworzy program widać ze program "wykłada się" na 10 pętli wywalając taki błąd:
sql.jpg

Macie pomysł co to może być? (no i dlaczego akurat na 10 "okrążaniu" ?)

Ps. Zapis z loga:

 
21:27:07 Rozpoczęcie pętli - odczyt z tabeli sklepów
21:27:07 Pętla numer: 1
21:27:07 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET BUKOWA LUBLIN'
21:27:07 ID kontrahenta: 23
21:27:07 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=23
21:27:07 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1065
21:27:07 Znaleziony dokument: 1065
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1177
21:27:07 Znaleziony dokument: 1177
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1281
21:27:07 Znaleziony dokument: 1281
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1357
21:27:07 Znaleziony dokument: 1357
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1358
21:27:07 Znaleziony dokument: 1358
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1368
21:27:07 Znaleziony dokument: 1368
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1371
21:27:07 Znaleziony dokument: 1371
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1461
21:27:07 Znaleziony dokument: 1461
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1551
21:27:07 Znaleziony dokument: 1551
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1695
21:27:07 Znaleziony dokument: 1695
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1699
21:27:07 Znaleziony dokument: 1699
21:27:07 KONIEC - NEXT
21:27:07 Koniec pętli - odczyt z tabeli sklepów
21:27:07 Pętla numer: 2
21:27:07 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET TURKA'
21:27:07 ID kontrahenta: 24
21:27:07 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=24
21:27:07 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1059
21:27:07 Znaleziony dokument: 1059
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1075
21:27:07 Znaleziony dokument: 1075
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1103
21:27:07 Znaleziony dokument: 1103
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1168
21:27:07 Znaleziony dokument: 1168
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1289
21:27:07 Znaleziony dokument: 1289
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1349
21:27:07 Znaleziony dokument: 1349
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1382
21:27:07 Znaleziony dokument: 1382
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1547
21:27:07 Znaleziony dokument: 1547
21:27:07 KONIEC - NEXT
21:27:07 Koniec pętli - odczyt z tabeli sklepów
21:27:07 Pętla numer: 3
21:27:07 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET KRAŚNICKA'
21:27:07 ID kontrahenta: 25
21:27:07 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=25
21:27:07 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1063
21:27:07 Znaleziony dokument: 1063
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1070
21:27:07 Znaleziony dokument: 1070
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1095
21:27:07 Znaleziony dokument: 1095
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1163
21:27:07 Znaleziony dokument: 1163
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1282
21:27:07 Znaleziony dokument: 1282
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1352
21:27:07 Znaleziony dokument: 1352
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1353
21:27:07 Znaleziony dokument: 1353
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1445
21:27:07 Znaleziony dokument: 1445
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1473
21:27:07 Znaleziony dokument: 1473
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1546
21:27:07 Znaleziony dokument: 1546
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1553
21:27:07 Znaleziony dokument: 1553
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1698
21:27:07 Znaleziony dokument: 1698
21:27:07 KONIEC - NEXT
21:27:07 Koniec pętli - odczyt z tabeli sklepów
21:27:07 Pętla numer: 4
21:27:07 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET NADBYSTRZYCKA'
21:27:07 ID kontrahenta: 26
21:27:07 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=26
21:27:07 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=962
21:27:07 Znaleziony dokument: 962
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1083
21:27:07 Znaleziony dokument: 1083
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1101
21:27:07 Znaleziony dokument: 1101
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1172
21:27:07 Znaleziony dokument: 1172
21:27:07 KONIEC - NEXT
21:27:07 START
21:27:07 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1293
21:27:08 Znaleziony dokument: 1293
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1355
21:27:08 Znaleziony dokument: 1355
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1550
21:27:08 Znaleziony dokument: 1550
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1694
21:27:08 Znaleziony dokument: 1694
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1696
21:27:08 Znaleziony dokument: 1696
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 5
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET KIEPURY'
21:27:08 ID kontrahenta: 27
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=27
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1072
21:27:08 Znaleziony dokument: 1072
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1365
21:27:08 Znaleziony dokument: 1365
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1443
21:27:08 Znaleziony dokument: 1443
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1459
21:27:08 Znaleziony dokument: 1459
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1555
21:27:08 Znaleziony dokument: 1555
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1702
21:27:08 Znaleziony dokument: 1702
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 6
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET RAABEGO'
21:27:08 ID kontrahenta: 28
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=28
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1051
21:27:08 Znaleziony dokument: 1051
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1053
21:27:08 Znaleziony dokument: 1053
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1077
21:27:08 Znaleziony dokument: 1077
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1087
21:27:08 Znaleziony dokument: 1087
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1279
21:27:08 Znaleziony dokument: 1279
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1360
21:27:08 Znaleziony dokument: 1360
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1468
21:27:08 Znaleziony dokument: 1468
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1481
21:27:08 Znaleziony dokument: 1481
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1557
21:27:08 Znaleziony dokument: 1557
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1704
21:27:08 Znaleziony dokument: 1704
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 7
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET POGODNA'
21:27:08 ID kontrahenta: 29
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=29
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1055
21:27:08 Znaleziony dokument: 1055
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1081
21:27:08 Znaleziony dokument: 1081
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1093
21:27:08 Znaleziony dokument: 1093
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1280
21:27:08 Znaleziony dokument: 1280
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1351
21:27:08 Znaleziony dokument: 1351
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1439
21:27:08 Znaleziony dokument: 1439
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1478
21:27:08 Znaleziony dokument: 1478
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1556
21:27:08 Znaleziony dokument: 1556
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 8
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET GŁUSK'
21:27:08 ID kontrahenta: 31
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=31
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1047
21:27:08 Znaleziony dokument: 1047
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1085
21:27:08 Znaleziony dokument: 1085
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1166
21:27:08 Znaleziony dokument: 1166
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1288
21:27:08 Znaleziony dokument: 1288
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1356
21:27:08 Znaleziony dokument: 1356
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1552
21:27:08 Znaleziony dokument: 1552
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 9
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET NOWY ŚWIAT'
21:27:08 ID kontrahenta: 32
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=32
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1057
21:27:08 Znaleziony dokument: 1057
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1099
21:27:08 Znaleziony dokument: 1099
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1165
21:27:08 Znaleziony dokument: 1165
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1285
21:27:08 Znaleziony dokument: 1285
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1290
21:27:08 Znaleziony dokument: 1290
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1359
21:27:08 Znaleziony dokument: 1359
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1366
21:27:08 Znaleziony dokument: 1366
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1449
21:27:08 Znaleziony dokument: 1449
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1453
21:27:08 Znaleziony dokument: 1453
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1466
21:27:08 Znaleziony dokument: 1466
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1475
21:27:08 Znaleziony dokument: 1475
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1549
21:27:08 Znaleziony dokument: 1549
21:27:08 KONIEC - NEXT
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=1700
21:27:08 Znaleziony dokument: 1700
21:27:08 KONIEC - NEXT
21:27:08 Koniec pętli - odczyt z tabeli sklepów
21:27:08 Pętla numer: 10
21:27:08 Zapytanie SQL: select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE 'TOP MARKET OKRZEI'
21:27:08 ID kontrahenta: 33
21:27:08 Zapytanie SQL: select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid=33
21:27:08 Rozpoczęcie pętli - odczyt dokumentów kontrahenta
21:27:08 START
21:27:08 Zapytanie SQL: select dok_id from ne_dokumenty where dok_id=498

0

karny siusiak za c**** formatowanie

procedure dupa;
begin
  append(logi);
  czas := (TimeToStr(Time));
  writeln(logi, czas +
    (utf8tocp1250(' Rozpoczęcie pętli - odczyt z tabeli sklepów')));
  closefile(logi);
  For i := 1 to StringGrid3.RowCount - 1 do
  Begin
    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi, czas + utf8tocp1250(' Pętla numer: ' + inttostr(i)));
    closefile(logi);
    SQLQuery1.Close;
    SQLQuery1.SQL.Clear;
    zapytanie :=
      Concat('select kh_Id from kh__Kontrahent JOIN adr__Ewid ON kh__Kontrahent.kh_Symbol=adr__Ewid.adr_symbol  WHERE adr_nazwa LIKE '''
      + utf8tocp1250(StringGrid3.Cells[1, i]) + '''');
    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi, czas + ' Zapytanie SQL: ' + zapytanie);
    closefile(logi);
    SQLQuery1.SQL.Add(zapytanie);
    SQLQuery1.Open;
    IdKontrahenta := SQLQuery1.Fields[0].AsString;
    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi, czas + ' ID kontrahenta: ' + IdKontrahenta);
    closefile(logi);

    SQLQuery1.Close;
    SQLQuery1.SQL.Clear;
    zapytanie :=
      Concat('select dok_id,dok_nrPelny, dok_odbiorcaid from dok__dokument where dok_typ=2 and dok_odbiorcaid='
      + IdKontrahenta);
    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi, czas + ' Zapytanie SQL: ' + zapytanie);
    closefile(logi);
    SQLQuery1.SQL.Add(zapytanie);
    SQLQuery1.Open;

    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi,
      czas + (utf8tocp1250
      (' Rozpoczęcie pętli - odczyt dokumentów kontrahenta')));
    closefile(logi);
    While not SQLQuery1.Eof do
    Begin
      append(logi);
      czas := (TimeToStr(Time));
      writeln(logi, czas + (utf8tocp1250(' START')));
      closefile(logi);
      dok_kon := SQLQuery1.Fields[0].AsString;

      SQLQuery4.Close;
      SQLQuery4.SQL.Clear;
      zapytanie := Concat('select dok_id from ne_dokumenty where dok_id='
        + dok_kon);
      append(logi);
      czas := (TimeToStr(Time));
      writeln(logi, czas + ' Zapytanie SQL: ' + zapytanie);
      closefile(logi);
      SQLQuery4.SQL.Add(zapytanie);
      SQLQuery4.Open;
      ne_id_dok := SQLQuery4.Fields[0].AsString;
      append(logi);
      czas := (TimeToStr(Time));
      writeln(logi, czas + ' Znaleziony dokument: ' + ne_id_dok);
      closefile(logi);
      If ne_id_dok = '' then
      Begin
        append(logi);
        czas := (TimeToStr(Time));
        writeln(logi, czas + ' Dokumentu nie ma w bazie - dodaje go');
        closefile(logi);
        zapytanie2 := ('INSERT INTO[' + BAZA_DANYCH + '].[dbo].[ne_dokumenty]'
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + '([dok_id]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dok_nr]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[exp]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dook_kont])' + #13#10);
        zapytanie2 := Concat(zapytanie2 + 'VALUES' + #13#10);
        zapytanie2 := Concat(zapytanie2 + '(' + SQLQuery1.Fields[0].AsString
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',''' + SQLQuery1.Fields[1].AsString +
          '''' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',0' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',' + SQLQuery1.Fields[2]
          .AsString + ')');
        SQLQuery2.Close;
        SQLQuery2.SQL.Clear;
        SQLQuery2.SQL.Add(zapytanie2);
        append(logi);
        czas := (TimeToStr(Time));
        writeln(logi, czas + ' Zapytanie SQL: ' + zapytanie2);
        closefile(logi);
        SQLQuery2.ExecSQL;
      End;
      SQLQuery1.Next;
      append(logi);
      czas := (TimeToStr(Time));
      writeln(logi, czas + (utf8tocp1250(' KONIEC - NEXT')));
      closefile(logi);
    end;

    append(logi);
    czas := (TimeToStr(Time));
    writeln(logi,
      czas + (utf8tocp1250(' Koniec pętli - odczyt z tabeli sklepów')));
    closefile(logi);
  end;
end;
0

Powstawiałem

Sqlqueryx.ParseSQL:=false;

lecz to nie pomogło...

0

Kod jest nadal (nawet po uporządkowaniu przez @abrakadaber) jest strasznie zamulony:

  1. wywal te niepotrzebne Concat'y albo robisz a:=b+c; albo a:=Concat(b,c); zaś a:=Concat(b+c); jest kompletnie bez sensu.
  2. napisz procedurę:
procedure WriteLog(const Text:String);
begin
    append(logi);
    writeln(logi,TimeToStr(Time)+' '+utf8tocp1250(Text));
    closefile(logi);
end;

I użyj ją wszędzie.
3. zamiast

       zapytanie2 := ('INSERT INTO[' + BAZA_DANYCH + '].[dbo].[ne_dokumenty]'
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + '([dok_id]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dok_nr]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[exp]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dook_kont])' + #13#10);
        zapytanie2 := Concat(zapytanie2 + 'VALUES' + #13#10);
        zapytanie2 := Concat(zapytanie2 + '(' + SQLQuery1.Fields[0].AsString
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',''' + SQLQuery1.Fields[1].AsString +
          '''' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',0' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',' + SQLQuery1.Fields[2]
          .AsString + ')');

użyj:

         zapytanie2
         :=
            'INSERT INTO[' + BAZA_DANYCH + '].[dbo].[ne_dokumenty]'#13#10+
            '([dok_id],'#13#10+
            '[dok_nr],'#13#10+
            '[exp],'#13#10+
            '[dook_kont])'#13#10+
            'VALUES('#13#10+
            SQLQuery1.Fields[0].AsString+','#13#10+
            ''''+SQLQuery1.Fields[1].AsString+''','#13#10+
            '0,'#13#10+
            SQLQuery1.Fields[2].AsString+')'
        ;
  1. zamiast
        SQLQuery2.SQL.Clear;
        SQLQuery2.SQL.Add(zapytanie2);

użyj:

        SQLQuery2.SQL.Text:=zapytanie2;

lub od razu: SQLQuery2.SQL.Text
:=
...
;

0
_13th_Dragon napisał(a):

Kod jest nadal (nawet po uporządkowaniu przez @abrakadaber) jest strasznie zamulony:

  1. wywal te niepotrzebne Concat'y albo robisz a:=b+c; albo a:=Concat(b,c); zaś a:=Concat(b+c); jest kompletnie bez sensu.
  2. napisz procedurę:
procedure WriteLog(const Text:String);
begin
    append(logi);
    writeln(logi,TimeToStr(Time)+' '+utf8tocp1250(Text));
    closefile(logi);
end;

I użyj ją wszędzie.

Ok, uporządkuje to kod, ale nie pomoże w rozwiązaniu problemu...

0

_13th_Dragon zastosowałem się do wszystkich Twoich uwag i nadal nie działa....

Poradziłem sobie z problemem trochę "na około": zrezygnowałem z wielu SQLQuery, wpisując wyniki w tabele pomocnicze.

1
_13th_Dragon napisał(a):

Kod jest nadal (nawet po uporządkowaniu przez @abrakadaber) jest strasznie zamulony:

  1. wywal te niepotrzebne Concat'y albo robisz a:=b+c; albo a:=Concat(b,c); zaś a:=Concat(b+c); jest kompletnie bez sensu.
  2. napisz procedurę:
procedure WriteLog(const Text:String);
begin
    append(logi);
    writeln(logi,TimeToStr(Time)+' '+utf8tocp1250(Text));
    closefile(logi);
end;

I użyj ją wszędzie.

  1. zamiast
       zapytanie2 := ('INSERT INTO[' + BAZA_DANYCH + '].[dbo].[ne_dokumenty]'
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + '([dok_id]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dok_nr]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[exp]' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',[dook_kont])' + #13#10);
        zapytanie2 := Concat(zapytanie2 + 'VALUES' + #13#10);
        zapytanie2 := Concat(zapytanie2 + '(' + SQLQuery1.Fields[0].AsString
          + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',''' + SQLQuery1.Fields[1].AsString +
          '''' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',0' + #13#10);
        zapytanie2 := Concat(zapytanie2 + ',' + SQLQuery1.Fields[2]
          .AsString + ')');

użyj:

         zapytanie2
         :=
            'INSERT INTO[' + BAZA_DANYCH + '].[dbo].[ne_dokumenty]'#13#10+
            '([dok_id],'#13#10+
            '[dok_nr],'#13#10+
            '[exp],'#13#10+
            '[dook_kont])'#13#10+
            'VALUES('#13#10+
            SQLQuery1.Fields[0].AsString+','#13#10+
            ''''+SQLQuery1.Fields[1].AsString+''','#13#10+
            '0,'#13#10+
            SQLQuery1.Fields[2].AsString+')'
        ;
  1. zamiast
        SQLQuery2.SQL.Clear;
        SQLQuery2.SQL.Add(zapytanie2);

użyj:

        SQLQuery2.SQL.Text:=zapytanie2;

lub od razu: SQLQuery2.SQL.Text
:=
...
;



- Panie mechaniku samochód mi gaśnie...
- No wie Pan... : - samochód ogólnie brudny
                       - brak płynu w spryskiwaczach
                       - lusterka źle ustawione
                       - radio szumi

1 użytkowników online, w tym zalogowanych: 0, gości: 1