Wrzucenie większej ilości danych na raz

0

Witam. Chciałbym dodać większa ilość danych na raz do tabeli. Mianowicie w Aplikacji chce mieć 2 pola: 1- dokument od nr: "do uzupelnienia"
i 2- dokument do nr: "do uzupełnienia". Chciałbym, żeby samo mi się uzupełniało, jeżeli w pierwszym wpisze 10 w drugim 30; to sama uzupełni mi kolejne wpisy do bazy danych od 10 do 30 w sumie 20 wierszy. Czy idzie coś takiego zrobić ? Dodam jeszcze, że apka działa na procedurach a nie na bezpośrednim połączeniu do tabel. Dokument ma dodatkowo jeszcze pole daty, którą chciałbym aby wpisał automatycznie pobierając z systemu.

0

Oczywiście, że da radę to zrobić. Można to zrobić po stronie aplikacji lub po stronie bazy np. napisać procedurę która zainsertuje rekord wpisany przez usera oraz doda kolejne rekordy. Nie pytaj jak, ponieważ na forum nie dajemy gotowców, a jedynie pomagamy w rozwiązaniu konkretnych problemów z kodem.

0

jeśli dodawanie jest przez stored proc to po stronie aplikacji jedynie pętla i x razy wywołanie stored proc. Druga opcja to jak przedmówca wspomniał dodatkowa stored proc, która dostanie zakres i zrobi x insertów

0

Dzięki Panowie. Na początku zrobię po stronie aplikacji wywołując x razy procedure i wpisze numery przy pomocy pętli for :)

0

Jednak po próbach w VS działa to głupio bo 50 czy 200 razy wywołuje tę samą procedure. Czy coś takiego co wymyśliłem ma prawo zadziałać? Czy jednak źle myślę:
CREATE PROCEDURE WZ_INSERT_MANY
@a int,
@b int
AS BEGIN
WHILE @a < @b
INSERT INTO KLIENT_TAB (WZ_NUMBER)
VALUES (@a)
SET @a += 1
END

Wg mnie jeśli podam numer @a=10 i @b=20 to powinno mi wprowadzić do bazy numery od 10 do 20.

0

Na pierwszy rzut oka tak. Nie możesz tego po prostu przetestować? Poza tym na licznik zadeklaruj osobną zmienną.

DECLARE @i INT = @a
0

Poza tym nie wiem czy Twój RDBMS wspiera taką składnię:

@i += 1

ale na pewno zadziała:

@i = @i + 1
0

Spoko, no właśnie nie mogę :) będę mógł po 24 jak wrócę do domu, bo wpadłem na ten pomysł w pracy i muszę siedzieć na dupie i wystawiać faktury do północy :) a chciałem znać waszą opinie czy to może zadziałać :)

0
ALTER PROCEDURE [dbo].[WZ_INSERT_MANY]
@a int,
@b int
AS BEGIN
DECLARE @i int = @a
WHILE @i < @b
INSERT INTO KLIENT_TAB (KLIENT_NAZWA)
VALUES (@a)
SET @i = @i + 1
END 

Gdzieś mam błąd, nie wiem czemu, ale zapycha mi całą bazę danych rekordami podanymi jako @a, wszystkie rekordy (setki tysięcy ) mają wpisaną wartość którą ja podam jako @a, wartości @b nigdzie nie ma jak również tych pomiedzy nimi

0
ALTER PROCEDURE [dbo].[WZ_INSERT_MANY]
@a int,
@b int
AS BEGIN
DECLARE @i int = @a
WHILE @i < = @b
BEGIN
INSERT INTO KLIENT_TAB (KLIENT_NAZWA)
VALUES (@i)
SET @i = @i + 1
END
END

Już naprawione, brakowało po pętli while "BEGIN" i przez to się zapętliło w nieskończoność.

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