webForumDet fria alternativet
Logga in / Bli medlem

dBase + SQLstrul

Databaser & SQL

6 svar · 312 visningar · startad av OveRRidE

Medlem sedan feb. 200112 078 inlägg
Frågan#1

Jag försöker den denna SQL-sats hämta lite data ur ett antal databaser som är av formatet dBase:

SQL = "SELECT * FROM kund.dbf k INNER JOIN oof.dbf o ON k.kundnr = o.kundnr INNER JOIN artrad.dbf a ON o.doknr = a.doknr INNER JOIN art.dbf a2 ON a.artnr = a2.artnr WHERE a.benaemn LIKE '%" & srcString & "%'"

Minn connection ser ut sårhär:

conn.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=U:\VB\search\db;"

Nån som vet varför jag får följande meddelande:?

Syntax error: missing operator

:l :q

Medlem sedan dec. 200012 464 inlägg
#2

dBase?

Du kan väl testa någon av dessa

SQL = "SELECT * FROM ((kund.dbf k 
INNER JOIN oof.dbf o ON k.kundnr = o.kundnr)
 INNER JOIN artrad.dbf a ON o.doknr = a.doknr)
 INNER JOIN art.dbf a2 ON a.artnr = a2.artnr 
WHERE a.benaemn LIKE '%" & srcString & "%'"

eller

sql = "select * from kund.dbf k,oof.dbf o ,arrad.dbf a,art.dbf a2" & _
" where oof.dbf o ON k.kundnr = o.kundnr " & _
" and o.doknr = a.doknr " & _
" and a.artnr = a2.artnr " & _
" and a.benaemn LIKE '%" & srcString & "%'"
Medlem sedan feb. 200112 078 inlägg
#3

Första satsen:

to many fields defined

Andra:

Syntax error: missing operator

Krångligt det här.. :l

Medlem sedan feb. 200112 078 inlägg
#4

Ny sträng, jag hade glömt att a.benaemn skulle vara a2.benaemn.. Men jag får samma fel, too many fields...

SQL = "SELECT * FROM ((kund.dbf k 
INNER JOIN oof.dbf o ON k.kundnr = o.kundnr)
 INNER JOIN artrad.dbf a ON o.doknr = a.doknr)
 INNER JOIN art.dbf a2 ON a.artnr = a2.artnr 
WHERE a2.benaemn LIKE '%" & srcString & "%'"
Medlem sedan feb. 200112 078 inlägg
#5

Eh.. förresten.. vad är det här? :q

[b]WHERE[/b] oof.dbf o [b]ON[/b] k.kundnr = o.kundnr

Jag tror din fråga var en aning felskriven... :) Jag testade denna, och då fick jag samma fel som ovan (To many fields defined). Det låter som nåt från dBase och inte som om det är nåt fel på SQL-satsen.. men vad? Skall jag ersätta * och spec:a varje kolumn?

sql = "select * from kund.dbf k, oof.dbf o, artrad.dbf a, art.dbf a2 where k.kundnr = o.kundnr and o.doknr = a.doknr and a.artnr = a2.artnr and a.benaemn LIKE '%" & srcString & "%'"
Medlem sedan feb. 200112 078 inlägg
#6

Många inlägg här nu. :e

Jag tror jag har fixat det:

sql = "select o.doknr, a2.benaemn, k.kundnr, k.namn, o.datum1 
from kund.dbf k, oof.dbf o, artrad.dbf a, art.dbf a2 
where k.kundnr = o.kundnr 
and o.doknr = a.doknr 
and a.artnr = a2.artnr 
and a2.benaemn 
LIKE '%" & srcString & "%'"
Medlem sedan dec. 200012 464 inlägg
#7

Jag missade en sak i mitt andra försök.

sql = "select * from kund.dbf k,oof.dbf o ,arrad.dbf a,art.dbf a2" & _
" where k.kundnr = o.kundnr " & _
" and o.doknr = a.doknr " & _
" and a.artnr = a2.artnr " & _
" and a.benaemn LIKE '%" & srcString & "%'"

red:
Lite sen, så går det när man glömmer att göra refresh.

Jo, felet med Too many fields låter som en begränsning i dbase.

386 ms totalt · 4 externa anrop · v20260731065814-full.1b2494f0
126 ms — deklarationer (db)
126 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)