mojaSymfonia FORUM
https://forum.mix-soft.pl/

hm 2010 - uaktualnienie bazy towarowej
https://forum.mix-soft.pl/viewtopic.php?f=15&t=2143
Strona 1 z 1

Autor:  tatanka [ 2010-06-28, 16:02 ]
Tytuł:  hm 2010 - uaktualnienie bazy towarowej

Witam,
mam taki problem. Zaimportowałem bazę towarową do symfonii. Ruszyła praca na programie i okazało się że w pliku do importu była jeszcze jedna kolumna rozszerzenie nazwy. Niestety pominąłem tą kolumnę przy imporcie i teraz chciałbym uaktualnić nazwy towarów z poziomu pervasiva. Napisałem procedurę która zaczytuje do kursora dane z tabeli w której są dane towarowe z dodatkową kolumną i w pętli update-uje dane w tabeli TW porównując kody towarów.

Kod:

CREATE PROCEDURE zamiana() WITH DEFAULT HANDLER AS
BEGIN

DECLARE :v_kod VARCHAR(255);
DECLARE :v_nazwa VARCHAR(255);
DECLARE :v_opis VARCHAR(255);

declare x cursor for
select distinct kod, nazwa, opis from import;
open x;

FETCH NEXT FROM x INTO :v_kod, :v_nazwa, :v_opis ;

while (SQLSTATE = '01S02') do
    update tw set nazwa = :v_nazwa + ' ' + :v_opis where tw.kod like :v_kod;
   
   FETCH NEXT FROM x INTO :v_kod, :v_nazwa, :v_opis;
END while;

CLOSE x;
END



Procedura się wykonuje, trwa nawet chwilę do w bazie jest ok 9000 kodów.
Kończy się sukcesem ale po jej wykonaniu i odczytaniu tabeli towarów brak jakikolwiek zmian. Stąd moje pytanie, czy coś jest źle z moją procedurą czy nie można update-ować tej tabeli ??

Autor:  wrob [ 2010-06-28, 16:30 ]
Tytuł: 

А jestes pewien ze sie cokolwiek wykonuje.... pozatym dosc dziwna metode na update stosujesz

nie da sie normalnie - tzn tak? (bez procedur itp)

Kod:
Update tw set nazwa = tw.nazwa + ' ' + (select opis from import where import.kod=tw.kod)

Autor:  tatanka [ 2010-06-28, 16:34 ]
Tytuł: 

No tak masz rację. Trochę przekombinowałem ta procedurę. Spróbuję Twoim sposobem. Dzięki za podpowiedź.

Autor:  tatanka [ 2010-06-29, 09:30 ]
Tytuł: 

Kurcze niby proste zapytanie a generuje błąd :

Kod:
<<<<<<<<<<<<<<<<<<<<<<<<
[LNA][Pervasive][ODBC Engine Interface]Expression evaluation error.
>>>>>>>>>>>>>>>>>>>>>>>>


Pervasive w wersji 10.30. I już zgłupiałem. Na MS SQL już dawno byłoby po kłopocie.

Ale jeszcze poprawiłem swoją procedurę i teraz update zadziałał tylko pole nazwa jest VARCHAR 40 i więcej się nie da w nie upchać. Ale jak z programu chcemy wpisać długą nazwę towaru to się da. W takim razie gdzie jest trzymana dalsza część nazwy towaru jeśli jej długość przekracza 40 znaków ??

Autor:  wrob [ 2010-06-29, 12:09 ]
Tytuł: 

to przykladowe zapytanie - wez go troche popraw :)


A reszta nazwy jest chyba w tabeli nt czy jakos tak - wez pogrzeb w rapotach diagnostycznych tam masz gotowce czytajace dlugie nazwy tzn dokladajace reszte nazwy

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/