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/ |