Toon posts:

[SQL] insert query

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo
ik heb een (nu ff een simpele) database gemaakt: dbsimpel
hierin staat 1 tabel : tblnaam
in deze tabel staan 2 velden: naam, achternaam
nu is deze tabel helemaal leeg, maar er moeten 10 gebruikers in komen te staan (in het echt meer, maar maakt nu niet uit)'
ik wil hiervoor een query gaan gebruiken,
nu weet ik wel hoe je een insert query moet maken maar hoe maak je een insert query voor meerdere records
dus ik wil 10 records in 1 keer erin zetten?
IK werk met acces.

  • Kama
  • Registratie: Mei 2002
  • Laatst online: 14:19

Kama

Aritifical Intelligenticus

Je kunt een selectie uit een andere table inserten dmv:

insert into Table select * from AndereTable

Niels


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
Voor ieder record moet je die insert query opnieuw gaan oproepen, tenzij de records die je wilt toevoegen reeds in een andere tabel staan, dan kan je doen:
code:
1
2
INSERT INTO tblnaam
SELECT veld1, veld2 FROM anderetabel

https://fgheysels.github.io/


Verwijderd

Topicstarter
maar kan je niet in 1 query al die records gaan toevoegen, (ze komn niet uit een andere tabel, maar uit een geschreven document)

Verwijderd

Nee. Wel zijn er databases die import tools ondersteunen.

Verwijderd

Topicstarter
heb je misschien een ander voorstel? we moeten met acces werken? weet je hoe het sneller kan? zodat we niet 100 verschillende query's moeten maken?

  • ferdivaneeten
  • Registratie: Juni 2001
  • Laatst online: 26-08-2025

ferdivaneeten

zo gaat dat

Je kunt in Access ook importeren, o.a. Excel, HTML en tekst bestanden. Zie File > Get External Data > Import

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
werkt zoiets als:
code:
1
2
3
4
5
6
INSERT INTO tblnaam (
SELECT name, surname 
FROM dual 
WHERE name IN ('bas', 'jan', 'jaap', 'pieter', 'marie') 
AND surname IN ('jansen', 'devries')
)

niet?
Als het wel werkt op oracle dan moet het even omgeschreven worden naar het dialect wat jij gebruikt...

Verwijderd

Verwijderd schreef op 02 oktober 2002 @ 12:34:
heb je misschien een ander voorstel? we moeten met acces werken? weet je hoe het sneller kan? zodat we niet 100 verschillende query's moeten maken?
Schrijf zelf een import functie, die de regels 1 voor 1 inleest en insert.

Verwijderd

Topicstarter
Dash2in1 schreef op 02 oktober 2002 @ 12:48:
werkt zoiets als:
code:
1
2
3
4
5
6
INSERT INTO tblnaam (
SELECT name, surname 
FROM dual 
WHERE name IN ('bas', 'jan', 'jaap', 'pieter', 'marie') 
AND surname IN ('jansen', 'devries')
)

niet?
Als het wel werkt op oracle dan moet het even omgeschreven worden naar het dialect wat jij gebruikt...
het werkt niet bij acces
het omschrijven naar acces is nou juist mijn vraag

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
het werkt ook niet in oracle kwam ik achter
edit:

het omschrijven was dus niet alleen je issue

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
Je kunt toch 1 query schrijven met parameters, en dan voor ieder toe te voegen record, vul je de juist waardes in die parameters in.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 02 oktober 2002 @ 13:07:
Je kunt toch 1 query schrijven met parameters, en dan voor ieder toe te voegen record, vul je de juist waardes in die parameters in.
dat is een goede maar hoe doe ik dat met meerdere velden? dus ik he nu:

INSERT INTO naam (naam, achternaam) values( [])

maar dan kan ik maar alleen naam invoeren, en achternaam niet

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
Verwijderd schreef op 02 oktober 2002 @ 13:12:
[...]


dat is een goede maar hoe doe ik dat met meerdere velden? dus ik he nu:

INSERT INTO naam (naam, achternaam) values( [])

maar dan kan ik maar alleen naam invoeren, en achternaam niet

Hoe je het doet in Access weet ik niet, maar misschien vind je in de help er wel iets over terug?

In delphi doe je het bv zo:
code:
1
2
3
4
5
Query.SQL.Text := 'INSERT INTO tabel (Voornaam, AchterNaam)  ' +
                              'VALUES (:p_vn, :p_an)';
Query.ParamByName ('p_vn').AsString := 'bla';
Query.ParamByName('p_an').AsString := 'bla2';
Query.ExecSQL();

https://fgheysels.github.io/


  • StratoFarmer
  • Registratie: April 2000
  • Laatst online: 20-08 22:02

StratoFarmer

Anke :*

Ik weet niet of ik goed begrijp wat je wilt :? ,maar hier is mijn voorstel:

code:
1
2
3
4
INSERT INTO tabelnaam ( naam, achternaam ) VALUES
( bart, veldman ),
( kees, janssen ),
( Henk, Jansen );

tada.

Mijn plekkie + Sympathisant van 'GoT voor Behoud der Nederlandsche Taal' [GvBdNT]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
StratoFarmer schreef op 03 oktober 2002 @ 12:57:
Ik weet niet of ik goed begrijp wat je wilt :? ,maar hier is mijn voorstel:

code:
1
2
3
4
INSERT INTO tabelnaam ( naam, achternaam ) VALUES
( bart, veldman ),
( kees, janssen ),
( Henk, Jansen );

tada.


Tada, met een gewoon insert-statement kan je slechts 1 record per keer toevoegen. (Zoals reeds gezegd werd).

https://fgheysels.github.io/


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 11:34

TeeDee

CQB 241

Waarom niet gewoon een Loopje maken?

pseudo code:
code:
1
2
3
4
5
x = 0
Do while not x > 10
INSERT INTO tabelnaam (naam, achternaam) VALUES (kees, jansen)
x = x + 1
Loop

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
TeeDee schreef op 03 oktober 2002 @ 13:14:
Waarom niet gewoon een Loopje maken?

pseudo code:
code:
1
2
3
4
5
x = 0
Do while not x > 10
INSERT INTO tabelnaam (naam, achternaam) VALUES (kees, jansen)
x = x + 1
Loop


Idd, dat in combinatie met een geparameteriseerde query lijkt mij ook de beste oplossing.

https://fgheysels.github.io/


Verwijderd

Topicstarter
TeeDee schreef op 03 oktober 2002 @ 13:14:
Waarom niet gewoon een Loopje maken?

pseudo code:
code:
1
2
3
4
5
x = 0
Do while not x > 10
INSERT INTO tabelnaam (naam, achternaam) VALUES (kees, jansen)
x = x + 1
Loop
jaja een loopje in acces? dat kan toch nooit
en hoe wou je dan meerdere waarde invullen want ik wil niet de hele tijd kees, jansen hebben

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
Verwijderd schreef op 04 oktober 2002 @ 00:14:
[...]


jaja een loopje in acces? dat kan toch nooit
en hoe wou je dan meerdere waarde invullen want ik wil niet de hele tijd kees, jansen hebben


VBA, en uw query parameterizeren of dynamisch opbouwen.

https://fgheysels.github.io/


  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
ehm...
in die tijd dat je het kost om een VBA app te maken had je alles al handmatig kunnen invoeren :)
de meest efficiente manier om dat document om te zetten in een database is sterk afhankelijk van het format van je document. Als het allemaal structureel in elkaar zit, dan moet het niet moeilijk zijn om daar met een paar kleine veranderingen een ';'-gescheiden tekstbestand of een excel document te maken. Deze kan je makkelijk importeren in access.
Zit het document niet logisch in elkaar dan kan je het beter allemaal handmatig doen en dan heeft scripting ook weinig zin.

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024

Rodyman

chillend

zoepercavia schreef op 04 oktober 2002 @ 10:42:
ehm...
in die tijd dat je het kost om een VBA app te maken had je alles al handmatig kunnen invoeren :)
de meest efficiente manier om dat document om te zetten in een database is sterk afhankelijk van het format van je document. Als het allemaal structureel in elkaar zit, dan moet het niet moeilijk zijn om daar met een paar kleine veranderingen een ';'-gescheiden tekstbestand of een excel document te maken. Deze kan je makkelijk importeren in access.
Zit het document niet logisch in elkaar dan kan je het beter allemaal handmatig doen en dan heeft scripting ook weinig zin.
mwa als het een paar 1000 records zijn ga je dat niet met de hand doen. Ik zou toch voor de VBA oplossing gaan met een dynamische query. als je een voorbeeldje wilt zeg het maar, heb toevallig vd week ook zoiets gebruikt.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

whoami schreef op 03 oktober 2002 @ 13:00:
Tada, met een gewoon insert-statement kan je slechts 1 record per keer toevoegen. (Zoals reeds gezegd werd).

Das een mysql 'extended-insert' dan kan je meerdere records tegelijk inserten :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:05
Ah, dat wist ik niet.

Trouwens: Leve ANSI SQL

https://fgheysels.github.io/

Pagina: 1