更新されません。
セレクトしたデータをそのまま更新させようとしているからいけないのでしょうか?
<%
Dim DB,Rs,Cmd
Set DB = Server.createobject("ADODB.Connection")
On error Resume Next
DB.open "mysql"
DB.BeginTrans
Set Cmd=Server.createobject("ADODB.command")
Cmd.activeconnection=db
Cmd.commandtext="select * from stb where id =1"
Set Rs = Cmd.Execute
i=cint(1)
j="ADSL"
Do until Rs.eof
Rs("id"),value= i
Rs("name").value= j
Rs.update
If DB.Errors.Count >0 then
DB.Rollbacktrans
response.write "エラー"
for idx = 0 to 2
Response.write db.errors(idx).Description & "<br>"
next
else
DB.commitTrans
response.write "データが登録されました。"
end if
Rs.movenext
Loop
Rs.close
DB.close
set Cmd = Nothing
set Rs = Nothing
set db = Nothing
%>
No.1ベストアンサー
- 回答日時:
いきなりUpdate文を発行してはいけないのでしょうか?
Update stb set name = 'ADSL' where id = 1
処理内容をみるに、Selectする必要性が感じられないのですが。
掲載内容を直すのであれば、
Rs("id"),value= i
↓
Rs("id").value= i
で大丈夫かと。
この回答への補足
SelectしたのはSelectした行を更新させたいからです。
Update stb set name = 'ADSL' where id = 1にしたら
Selectしなくても、Selectしてくれますが
Rs("id").value= i
Rs("name").value=j
Rs.update
の場合だとSELECTしないと、Idにあったデータを更新
してくれないと考えたからです。
他に方法があればぜひ教えてください。
回答ありがとうございます。
それではデータが更新されませんでした。
CMDの処理をRecordsetに変更してコードを書いたら
正常に動作しました。
よくわかりませんが、CMDの処理で、データ更新はできるのでしょうか?
No.3
- 回答日時:
RecordsetのLockTypeがReadOnlyになっているみたいです。
こちらで試してみましたが、変更することができず、更新できませんでした。
DB.ExecuteでUpdate文を投げる方法がやはり無難かもしれません。
回答ならずすみませんでした。
追記。
Loopの外でBeginTransをしている場合、RollbackTrans、CommitTransもLoopの外で行うようにしてくださいね。
No.2
- 回答日時:
#1です。
id=1の条件でSelectしているので、Recordsetに入ってくるデータはid=1のデータのみですよね。
なので、Selectする必要はなく、直接Updateを発行してしまえばよいのでは? と思ったわけです。
Select→RecordsetでUapdateだと2度手間になってしまうじゃないですか。
Updateの発行はこの場合、
db.Execute("Update stb set name = 'ADSL' where id = 1")
だけでできたと。
whereでid=1と条件つけていますから、この条件にあったデータのみUpdateされます。
この回答への補足
回答ありがとうございます。
すこし長いのですが、教えて頂きたいことがあります。
txtファイルには
1,ADSL
2,ISDN
といったデータが入ってます。
データベースは
ID,NAMEになっています。
Update set のSQL分では更新させることができましたが、
Rs("id")=arystr(0)
Rs("name")=arystr(1)
Rs.update
の場合では更新されません、
何故なのでしょうか?
また、Rs("id")=arystr(0)
Rs("name")=arystr(1)
Rs.update
の場合を利用して更新させるには
どうやれば更新させることができますか?
教えてください。
よろしくお願いします。
<%
Dim DB,Rs,Cmd
Set DB = Server.createobject("ADODB.Connection")
On error Resume Next
DB.open "mysql"
DB.BeginTrans
Set Rs=Server.createobject("ADODB.Recordset")
Set Cmd=Server.createobject("ADODB.command")
Cmd.activeconnection = DB
cmd.commandtext="select * from stb where id =?"
set fs = Server.createobject("scripting.filesystemobject")
set ts=fs.opentextfile(Server.Mappath("test.txt"),1)
Set Para=Cmd.createParameter("id",2,1,10)
Cmd.Parameters.append(Para)
do while Not ts.atendofstream
arystr=split(ts.Readline,",")
Para.value=arystr(0)
set Rs=Cmd.execute
Do until Rs.eof
Rs("id")=arystr(0)
Rs("name")=arystr(1)
Rs.update
If DB.Errors.Count >0 then
DB.Rollbacktrans
response.write "エラー"
for idx = 0 to 2
Response.write db.errors(idx).Description & "<br>"
next
else
DB.commitTrans
response.write "データが登録されました。"
end if
Rs.movenext
loop
loop
Rs.close
DB.close
set Rs = Nothing
set db = Nothing
%>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
エクセルに張り付けた写真のフ...
-
Windows10にデュアルブートでXP...
-
PS4で、「バージョン5.05以上の...
-
キヤノン アソビカメラ iNSPiC ...
-
マクロで同じフォルダにある画...
-
discordについての質問です。久...
-
asp.netにてgridviewの列を動的...
-
VB.NETでMSComm が追加できず?
-
vba 空のデータをSplitする時の...
-
マクロコードについて
-
VBAでPDF作成をしたあと、指定...
-
エクセル2016 シート保護について
-
SPO2測定
-
高校1年生情報の問題について。
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
-
LEDで電光掲示板に「A B C D E...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javascriptを使ってQRコード読...
-
SQLのmaxで求めた値を変数に代...
-
JavaScriptでtabindexの変更っ...
-
ドラッグ & ドロップでのド...
-
Selenium Basicの件
-
パソコンで動くjavascriptがス...
-
ボタンクリックした際、id末尾...
-
<input>のvalue値をプルダウン...
-
inputタグ内にあるid属性の意味?
-
struts selectbox optionsColle...
-
IndexedDB を使ってファイルア...
-
WebbrowserよりHTMLのValue値を...
-
プルダウン内容に応じてラジオ...
-
JQuery Datepickerについて
-
メールを送信するボタンでOutlo...
-
javascriptの計算結果をvalue=""に
-
★大至急!JavaScriptのif文教え...
-
jquerymobileで作成するアンケ...
-
VBAでIEのHTMLタグの要素を操作...
-
Doctrineのjoinについて
おすすめ情報