Odczyt z bazy danych MDB.

0

Witam,

próbuję napisać kod, który odczyta mi zawartość bazy danych i przepisze na zmienne wizualizacji.
Zapis do bazy zrealizowałem następująco:

Dim sql, id,abc,cur, numRows
sql = "Select * FROM Recipes WHERE Name='" & $RecipeSel_INI & "'"
cur = $DBCursorOpenSQL("DB_INI", sql)
numRows=$DBCursorRowCount(cur)
$DBCursorClose(cur)
If numRows<1 Then
	sql = "INSERT INTO Recipes VALUES('" & $RecipeSel_INI & "','" & $INI_Text1 & "','" & $INI_Text2 & "','" & $INI_Text3 & "','" & $INI_Text4 & "'"
	For id=1 To 18
		sql = sql & "," & $INI[id]
	Next
	sql = sql & ")"
	$DBExecute("DB_INI", sql)
	$reload = $reload+1
	MsgBox"Recipe Saved!",,"Save"
Else 
	sql = "UPDATE Recipes SET "
	For id=1 To 18
		If id>1 Then sql = sql & ","
		sql = sql & "INI"  & id & "=" & $INI[id]
	Next
	sql = sql & " WHERE Name='" & $RecipeSel_INI & "',TEXT1='" & $INI_Text1 & "',TEXT2='" & $INI_Text2 & "',TEXT3='" & $INI_Text3 & "',TEXT4='" & $INI_Text4 & "'"
	$DBExecute("DB_INI", sql)
	$reload = $reload+1
	MsgBox"Changes to Recipe saved!",,"Save"
End If

Odczyt mam następująco, niestety nie działa.

If  $Aux=0 Then 
 	Dim numCur, sql,numRows, id,i,sql2,result
	sql = "Select * FROM Recipes WHERE Name='" & $RecipeSel_INI & "',TEXT1='" & $INI_Text1 & "',TEXT2='" & $INI_Text2 & "',TEXT3='" & $INI_Text3 & "',TEXT4='" & $INI_Text4 & "'"
	numCur = $DBCursorOpenSQL("DB_INI", sql)
	numRows = $DBCursorRowCount(numCur)
	If $Num(numRows)>0 Then
		For id=1 To 18
			$INI[id] = $DBCursorGetValue(numCur, "INI" & id) 
		Next
	End If
	$DBCursorClose(numCur)
$Close("RecipeBrowser_INI.scr")
Else
 	sql = "Select * FROM Recipes WHERE Name='" & $RecipeSel_INI & "',TEXT1='" & $INI_Text1 & "',TEXT2='" & $INI_Text2 & "',TEXT3='" & $INI_Text3 & "',TEXT4='" & $INI_Text4 & "'"
	numCur = $DBCursorOpenSQL("DB_INI", sql)
	numRows = $DBCursorRowCount(numCur)
	If $Num(numRows)>0 Then
		For id=1 To 18
			$INI[id] = $DBCursorGetValue(numCur, "INI" & id) 
		Next
	End If
	$DBCursorClose(numCur)
  result=MsgBox("Are you sure you want to delete the Recipe: " &$RecipeSel_INI &"?",vbYesNo,"Delete")
  Select Case result
  Case vbYes
   sql2 = "DELETE FROM Recipes WHERE Name='" & $RecipeSel_INI & "',TEXT1='" & $INI_Text1 & "',TEXT2='" & $INI_Text2 & "',TEXT3='" & $INI_Text3 & "',TEX4='" & $INI_Text4 & "'"
  	$DBExecute("DB_INI", sql2)
   $reload = $reload+1
   $Close("RecipeBrowser_INI.scr")
    $RecipeSel=""
    For i =1 To 18
     $INI[i]=0
    Next
   Case vbNo 
   $Close("RecipeBrowser_INI.scr")
   End Select
End If

Pozdrawiam
0

Podejrzewam, że błąd jest w liniach SQL SELECT, ale niestety nie umiem go rozwiązać.

0

Nie wiem co to za język, ale patrząc jak tworzysz select:

 sql = "Select * FROM Recipes WHERE Name='" & $RecipeSel_INI & "',TEXT1='" & $INI_Text1 & "',TEXT2='" & $INI_Text2 & "',TEXT3='" & $INI_Text3 & "',TEXT4='" & $INI_Text4 & "'"

To otrzymasz zapytanie:

Select * FROM Recipes WHERE Name='$RecipeSel_INI',TEXT1='$INI_Text1',TEXT2='$INI_Text2',TEXT3='$INI_Text3',TEXT4='$INI_Text4'

A warunki w where łączymy AND lub OR a nie przecinkami, Update też nie powinien zadziałać....

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