Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: aktualizacja bez update
Forum PHP.pl > Forum > Bazy danych
feel
Chce zmienic wartosc jednegom pola w jednym rekordzie. Update zmienia mi we wszytkisch rekordach (wstawianie jakichkolwiek warunkow mi sie nie udalo). Za pomoca inserta tez mi nie wychodzi. Kasowanie calegoe rekordu i zapisywanie go na nowo ze zmieniona jedna wartoscia wydaje mi sie malo efektywne. Czy moze ktos napisac zapytanie sql-owe ktore realizuje operacje nadpisania jednego pola w jednym rekordzie.
Jabol
a nie dziala Ci[sql:1:22a2c111f0]UPDATE tabela SET pole = 'wartosc' WHERE unique_id = xx[/sql:1:22a2c111f0]Ozcywiscie zakladam ,ze masz pole jakies ktore moze byc unique id.
feel
no wlasnie to mi nie dziala. Robie w ASP i uzywam do tego bazy ACCESS-a. Jako unique_id uzywam pola ID ktore Access sam tworzy (typ AutoWert)
wyglada to tak:
Kod
UPDATE EVENT SET pole = "1" WHERE ID = "123"
feel
wlasciwie to sie teraz zorientowalem ze nie moge dokonac zadnej operacji jesli uzywam do kryterium pola ID (ani SELECT, ani DELETE itp.) Czy to pole typu AutoWert mozna w jakis sposb wykorzystywac jako kryterium? Bo przy takimuzyciu jak pokazalem powyzej (tzn WHERE ID = 'XXX') wyskakuje komunikat: "Data type mismatch". Jak sie dobrac wiec do tego ID w Accessie?
floatman
moze cos takiego...
Kod
<%

Dim nowa_wartosc, XXX

XXX = Request("np_YYY") 'ID komorki, ktora bedzie podlegala zmianie

nowa_wartosc = Request("pole_formularza") ' zamiast pola formularza moze byc np z QuerryString, chodzi po prostu o to jaka zmienna przekazujesz i jaka wartosc ma przyjac pole, ktore chcesz pozniej zaktualizowac...



Dim ConnectString, conn, connet



ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:sciezka_do_bazybaza.mdb" & ";Persist Security Info=False"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open ConnectString

Set connet = Server.CreateObject("ADODB.Recordset")

connet.open "NAZWA_TABELI WHERE ID = " & XXX , conn, 3, 3

connet("nazwa_pola_do_aktualizacji") = nowa_wartosc

connet.Update

connet.close

set connet= nothing

conn.close

set conn=nothing

%>
powyzszy kodzik u mnie dziala bez zarzutu; nie mozesz jednak aktualizowac pola ID, ktore jest autonumeracja rekordow (to tak na marginesie)
feel
dzieki. ale mi wlasciwie to juz dziala to co powyzej napisalem tylko ze jak kryterium jest ID to nie podaje wartosci w "uszach" - usunalem uszy i dziala - nie wiem czemu tak jest biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.