Paweł Gorański

Paweł Gorański informatyk, Alak

Temat: Dodanie kontrahentó do bazy WF-Mag

witam serdecznie
Mam uprzejmą prośbę czy ktoś może mnie poratować zapytaniem sql do dodania kontrahentów do bazy Wf-mag? mam przygotowaną i podpiętą pod sql bazę z kontrahentami (nazwa, adres, nip), ale nie wiem jak dodać to do bazy WF-mag, a z sql jestem narazie "cienki" (aktualnie dokształcam się w tym temacie).
Próbowałem coś takiego w Accessie:
INSERT INTO dbo_KONTRAHENT ( NAZWA, NAZWA_PELNA, ULICA_LOKAL, MIEJSCOWOSC, KOD_POCZTOWY, NIP )
SELECT [Wybrane elementy].Nazwa, [Wybrane elementy].[Nazwa pełna], [Wybrane elementy].Ulica, [Wybrane elementy].Miejscowość, [Wybrane elementy].[Kod pocztowy], [Wybrane elementy].NIP
FROM dbo_KONTRAHENT, [Wybrane elementy];
ale akccess pokazał info, że nie dodał rekordów w liczbie 560 (tylu jest kontrahentów) do tabeli na skutek naruszeń klucza.

Z góry bardzo dziękuje za jakąkolwiek pomoc!
Pozdrawiam serdecznie Paweł Gorański
Dariusz Sobala

Dariusz Sobala Black House sp. z
o.o.

Temat: Dodanie kontrahentó do bazy WF-Mag

Witam

Kolumna klucza [id_kontrahenta] w [kontrahent] nie jest autoincrement.
Dodając rekord do tabeli należy podać wartość [id_kontrahenta] Należy zadbać o to aby wstawiana wartość była unikalna.

W przypadku dodawania jednego rekordu:

select @idk=max(id_kontrahenta)+1 from kontrahent
insert into kontrahent (id_kontrahenta, ....
values (@idk, ....

W przypadku tego źródła można na przkład:
- utworzć temp table z polem IDENTITY i wartością seed: select max(id_kontrahenta)+1 from kontrahent
- wpisać do niej rekordy (zostaną wygenerowane unikalne wartości klucza)
- przepisać dane z temp table do [kontrahent]Dariusz Sobala edytował(a) ten post dnia 04.07.11 o godzinie 02:05
Paweł Gorański

Paweł Gorański informatyk, Alak

Temat: Dodanie kontrahentó do bazy WF-Mag

witam ponownie
a jednak jestem faktycznie jeszcze bardzo "cienki" z sql (moje początki)..

1. Zasadniczo ta tabela Wybrane elementy (zrobiona w akccess z pliku tekstowego) ma pole ponumerowane od 1 do 560, ale akccess wywala ten błąd jak robię kwerendę dołączającą do tabeli połaczonej dbo.KONTRAHENT (pole numeryczne 1-560 dołączam do id_kontrahenta).

2. Dalej, jak próbuje sobie w sql podany przez Kolegę przykład dla 1 rekordu:
select @idk=max(id_kontrahenta)+1 from kontrahent
insert into kontrahent (id_kontrahenta, ....
values (@idk, ....

u mnie to wygląda tak:
select @idk=max(id_kontrahenta)+1 from kontrahent
insert into kontrahent (id_kontrahenta, NAZWA, NAZWA_PELNA)values (@idk, test, test pelna)

to sql pokazuje info:
Msg 137, Level 15, State 1, Line 1
Must declare the scalar variable "@idk".
Msg 137, Level 15, State 2, Line 3
Must declare the scalar variable "@idk".

3. Natomiast jeśli chodzi o ostatnią wskazówkę to też się "zakręciłem":
W przypadku tego źródła można na przykład:

- utworzyć temp table z polem IDENTITY i wartością seed: select max(id_kontrahenta)+1 from kontrahent
jak to najlepiej zrobić?

- wpisać do niej rekordy (zostaną wygenerowane unikalne wartości klucza)
jak wyżej
- przepisać dane z temp table do [kontrahent]
to już rozumiem, że np. kwerendą aktualizująca lub bezpośrednio z sql?
Dariusz Sobala

Dariusz Sobala Black House sp. z
o.o.

Temat: Dodanie kontrahentó do bazy WF-Mag

Wczorajszym pomysłem było:

create table #temp(id int identity(1,1), nazwa varchar(100))
insert into #temp select nazwa from zrodlo

declare @idk int
select @idk =max(id_kontrahenta) from kontrahent

insert into kontrahent (id_kontrahenta,nazwa)
select id + @idk, nazwa from #temp

W tej tabeli jest więcej ograniczeń i pól wymaganych więc jeszcze sporo komunikatów przed finałem. Ale każdy zaczynał naukę sql podobnie :)

Pozdrawiam ds
Paweł Gorański

Paweł Gorański informatyk, Alak

Temat: Dodanie kontrahentó do bazy WF-Mag

dziękuje bardzo za chęci w dokształcaniu innych (mniej rozgarniętych):-)
Zasadniczo zrobiłem (z sqla):

create table #temp(id int identity(1,1), nazwa varchar(100))
insert into #temp select nazwa from zrodlo
i poszło ok (tabela jest, rekordy są), chociaż na marginesie czy mogę od razu zrobić wszystkie kolumny, które mam do przeniesienia (nazwa, nazwa pelna, ulica, miasto, kod, nip) czy muszę to na końcu zaktualizować?

następnie:
create table #temp(id int identity(1,1), nazwa varchar(100))
insert into #temp select nazwa from zrodlo
i sql pokazał mi komunikat:
Msg 515, Level 16, State 2, Line 4
Cannot insert the value NULL into column 'ID_KONTRAHENTA', table 'WAPRO_DEMO.dbo.KONTRAHENT'; column does not allow nulls. INSERT fails.
The statement has been terminated.
tylko nie wiem dlaczego (w tabeli temp mam ID_kontrahenta i nazwa uzupełnione)?
Paweł Gorański

Paweł Gorański informatyk, Alak

Temat: Dodanie kontrahentó do bazy WF-Mag

a jeszcze jedna sprawa, poniższy komunikat był przy pustej bazie kontrahent (prze przypadek usunięty był z sqla kontrahent sprzedaż detaliczna).
Na bazie z wpisanym Sprzedaż detaliczna, komunikat jest taki:
Msg 2601, Level 14, State 1, Line 4
Cannot insert duplicate key row in object 'dbo.KONTRAHENT' with unique index 'KONTRAHENT_IDFIR_NAZWA'.
The statement has been terminated.
Dariusz Sobala

Dariusz Sobala Black House sp. z
o.o.

Temat: Dodanie kontrahentó do bazy WF-Mag

To o czym pisałem dużo błedów przed ..

W przypadku braku rekordów @idk dostało null potem insert id + @idk też null dlatego ten komunikat (musi być unikalna liczba)

Proponuję sprawdzić które pola wypełnia mag podczas dodawania i uznać to za minimum. Ostatni błąd, para id_firmy, nazwa muszą być unikalne
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Dodanie kontrahentó do bazy WF-Mag

Paweł Gorański:
a jeszcze jedna sprawa, poniższy komunikat był przy pustej bazie kontrahent (prze przypadek usunięty był z sqla kontrahent sprzedaż detaliczna).
Na bazie z wpisanym Sprzedaż detaliczna, komunikat jest taki:
Msg 2601, Level 14, State 1, Line 4
Cannot insert duplicate key row in object 'dbo.KONTRAHENT' with unique index 'KONTRAHENT_IDFIR_NAZWA'.
The statement has been terminated.


Odradzam "grzebania" na bazie bez solidnych podstaw budowy bazy danych WF-Maga. Dane są bardzo często ze sobą powiązane z innymi i ich nieumiejętne usunięcie może doprowadzić do bezpowrotnego uszkodzenia bazy.
Paweł Gorański

Paweł Gorański informatyk, Alak

Temat: Dodanie kontrahentó do bazy WF-Mag

nie mam zamiaru w nich "grzebać" chcę tylko na start zaimportować bazę kontrahentów z innego programu, a inaczej niż sqlem nie zrobię bo stworzenie pliku txt do importu do WFMaga będzie chyba jeszcze trudniejsze..

chociaż teraz w sql mam kolejny kompunikat:
Msg 2601, Level 14, State 1, Line 5
Cannot insert duplicate key row in object 'dbo.KONTRAHENT' with unique index 'KONTRAHENT_KOD'.
The statement has been terminated.
oj chyba trochę będzie bawienia z tym (zwłaszcza przy mojej "wiedzy"):-)
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: Dodanie kontrahentó do bazy WF-Mag

problem będzie jak nie uwzględnisz wszystkich zależności chociażby między identyfikatorami płatników i kontrahentów a będzie bałagan w rozrachunkach albo dokumentach...
Szymon B.

Szymon B. Architekt AWS z
wieloletnim
doświadczeniem jako
admin roz...

Temat: Dodanie kontrahentó do bazy WF-Mag

Miałem dokładnie ten sam problem. Ten wątek pomógł mi go wyeliminować. Jak wspomniał Darek Sobala
"para id_firmy, nazwa muszą być unikalne" - i to jest klucz do rozwiązania tego problemu.

Przy okazji zapytam czy miał ktoś z Was okazję napisać kwerendę dołączającą, która pobiera dane z pliku CSV lub innego pliku tekstowego? Muszę zaimportować sporo kontrahentów i "bawię" się z tym w excelu, żeby z każdego wiersza danych wejściowych zlepił mi odpowiedniego inserta. Ale na pewno można to zrobić lepiej i szybciej.
Próbowałem również narzędzia Import and export data, ale się wysypuje zarówno przy imporcie z pliku tekstowego jak i xls.Szymon B. edytował(a) ten post dnia 02.10.11 o godzinie 23:24
Mariusz Dobrzelewski

Mariusz Dobrzelewski właściciel MD-SOFT

Temat: Dodanie kontrahentó do bazy WF-Mag

Witam

Proszę o kontakt na priv lub maila mariusz@md-soft.pl.

Dowolne importy/exporty danych WF-Mag - Kontrahenci, Asortyment.

Remanent z innych systemów ze stanami magazynowymi i cenami zakupu poszczególnych dostaw - bardzo często poszukiwana opcja przy migracji z innego systemu do WF-Maga.

Pozdrawiam

Mariusz Dobrzelewski
http://md-soft.pl



Wyślij zaproszenie do