検索結果
DB
- 全てのカテゴリ
- 全ての質問
- リスト上のcheckboxのON/OFF状態をうまくMySQLに格納したい
次のような、3項目×100人分(100行)からなるシンプルな表があります。 (環境: MySQL5.0.37、PHP5.2.2) 左から、出席番号を表すテキストボックス(Readonly)、 宿題の提出の有無を表すチェックボックス、氏名です。 表の一番下に、登録ボタン(submit)があります。 ------------------------------- 出席番号 チェック 氏名 myNo myCheck myName ------------------------------- [ 1] [ ] 阿藤 ------------------------------- [ 2] [ ] 伊藤 ------------------------------- [ 3] [ ] 宇藤 ------------------------------- :(以降、100人続く) [チェック状態をDBに登録する] このチェックボックスのOn/Offの状況を、SQLのUpdate文で一括登録したいのですが、 うまくできません。 テキストボックスに記入された出席番号の配列($myNo[])には、count($myNo)と やると100があると返ってきます。 チェックボックスに記入された配列($myCheck[])は、チェックされた場合しか 配列に格納されないという特性があるようです。 何もチェックしないでSubmitボタンを押下した場合、count($myCheck)はゼロを 返してくるのです。 ですので、つい最近、全然別件で、同じような質問をして解決したばかりですが、 http://oshiete1.goo.ne.jp/qa5054417.html ここにある解法は通じないように思います。 以下のコメント部分、どのように記述すればうまくUpdate文を適用できるでしょうか? <?php $con = mysql_connect(localhost, username, userpw); $selectdb = mysql_select_db(dbname, $con); //■■■■■■■↓↓↓↓質問の本題:ここの部分をどう記述すればいいですか? if ($_POST["exec"] != "") { $sql = "update mytable set myCheck = ?????? where myNo = ??????"; mysql_query($sql, $con); } //■■■■■■■ここまで $sql = "select * from mytable"; $rst = mysql_query($sql, $con); $recmax = mysql_num_rows($rst); $body .= "<table border=\"1\">\n"; $body .= "\t<tr>\n"; $body .= "\t\t<th>出席番号</th>\n"; $body .= "\t\t<th>チェック</th>\n"; $body .= "\t\t<th>氏名</th>\n"; $body .= "\t</tr>\n"; for ($recnum = 0; $recnum < $recmax; $recnum++) { $col = mysql_fetch_array($rst); $body .= "\t<tr>\n"; $body .= "\t\t<td><input type=\"text\" name=\"myNo[]\" value=\"" . $col["myNo"] . "\" readonly></td>\n"; $value_myCheck = ""; if ($col["myCheck"] == '1') { $value_myCheck = " checked"; } $body .= "\t\t<td><input type=\"checkbox\" name=\"myCheck[]\" value=\"1\"" . $value_myCheck . "></td>\n"; $body .= "\t\t<td>" . $col["myName"] . "></td>\n"; $body .= "\t</tr>\n"; } $body .= "</table>\n"; ?> <html> <head></head> <body> <form method="post" action="<?php $_SERVER['PHP_SELF'] ?>"> <?= $body ?> <input type="submit" name="exec" value="チェック状態をDBに登録する"> </form> </body> </html>
- VisualStudioによるアプリ開発について
お世話になります。 アプリケーション(オーダーシステム)を開発する上で、下記の環境で実現可能か否かご教授下さい。 <環境> ・A株式会社よりB株式会社へ商品をオーダーします。AとB間はVPN接続です。 ・Bにはオーダーを蓄積する為のSQLサーバーがあります。 ・Aはアプリケーションを起動し、必要項目を入力の上、オーダーします。そのオーダーした内容はBのSQLサーバーに蓄積されます。 ・Aより複数人から同時にオーダーされる場合もあります(同時にDBへアクセスされる為、排他制御が必要?)。 今回はAで利用する為のアプリケーションを開発したいと考えております。今までAccessで同じようなものを作ったことありますが、今回はAに複数人いる為、それぞれのPCにAccessをインストールする訳がいかない為(OfficeProやAccessを人数分買えない為)、Visual Studioで開発出来たらと考えた次第です。 Accessと同様にフォームをいくつか作成し、入力された内容をDBへ登録するだけなのですが、これは可能なのでしょうか。 何分Visual Studio自体触ったことが無い為、どのようなものかいまいちイメージが付きません。 Visual Studioでのフォームの作成等はこれから勉強するとして、そもそも上記が可能か教えて頂けたらと思います。 また、開発する上での注意点等ございましたらお教え頂けたらありがたいです。 以上、宜しくお願い致します。
- 締切済み
- Visual Basic
- naoto0216
- 回答数2
- VB5+SQL2000での ** TRANSACTIONについて(ADO)
環境:VB5(SP3)+SQL2000(SP1) VBで、BEGIN TRANSACTIONを定義し、その後更新用DBを更新する前に、ストアドプロシージャを利用せずDBを検索した場合、問題無く更新用DBへの更新に対して(ROLLBACK/COMMIT) TRANSACTION が効くのですが、ストアドプロシージャで検索した場合、(ROLLBACK) TRANSACTION が効きません。 分かりづらいですがサンプルを記します。 Function Test() Dim MyRs As New ADODB.Recordset Dim MyRs2 As New ADODB.Recordset : MyDB.Execute "BEGIN TRANSACTION TEST999",,adCmdText+adExecuteNoRecords : '(A)不具合未発生パターン 'レコードセットを開く 'このように、レコードセットを作成した場合問題なし。 MyRs.Open "SELECT * FROM TESTDB..テスト",MyDB,adOpenStatic '(B)不具合発生パターン 'ただし、上のSELECT文をストアドプロシージャで開いた場合、ROLLBACKが効かない 'レコードセットを開く(正常に(ROLLBACK)TRANSACTIONが動作せず、UpDate時にCommitしている) 'MyRs.Open "TESTDB..TEST001",MyDB,adOpenStatic : MyRs2.Open "SELECT * FROM TESTDB..更新テスト",MyDB,adOpenKeyset,adLockPessimistic If Err <> 0 Then 'Error処理 End If If MyRs2.EOF Then MyRs2.AddNew MyRs2![FLD1] = MyRs2![FLD1A] Else MyRs2![FLD1] = "TEST" End If MyRs2.UpDate 'ここは正常終了。(Err = 0) 'テスト用にエラー設定 Err = 1 if Err <> 0 then '(B)不具合発生パターンの場合、ROLLBACK をしても、DBに登録されてしまう。 MyDB.Execute "ROLLBACK TRANSACTION TEST999",,adCmdText+adExecuteNoRecords Exit Function End If MyRs.Close MyRs2.Close SmileDB.Execute "COMMIT TRANSACTION TEST999",,adCmdText+adExecuteNoRecords End Function
- 締切済み
- Visual Basic
- SUZUYUU
- 回答数1
- メールが送信できないです。
はじめて、投稿させていただきます。 わかる方がいらっしゃいましたら是非教えてください。 昨日までは、なんの問題もなくメールが送信できたのですが、今日になって突然メールが送信できなくなりました。 というより、送信ではなく作成さえできません。 OutlookExpressを起動して、「メール作成」ボタンを押したら、ちょっと考えたあげく「不正な処理を行ったので強制修了します」とエラー表示がでました。以下がそのないようです。 MSIMN のページ違反です。 モジュール : WAB32.DLL、 Registers: EAX=0047e4d4 CS=0177 EIP=35c4bfe4 EFLGS=00010206 EBX=0047e40c SS=017f ESP=0056de1c EBP=0056de40 ECX=8166dedc DS=017f ESI=004ff3db FS=31ef EDX=00400000 ES=017f EDI=0047e4d4 GS=4996 Bytes at CS:EIP: a5 a5 a5 a5 8b 75 08 83 c6 10 8b 06 89 03 c1 e0 Stack dump: 00000003 000000a4 00000000 00080000 0047e4b4 0047e3f0 00000002 00000003 00000000 0056e1f0 35c50a56 004ff3db 00000003 00000001 0056e244 0056e270 ちなみに、つい最近マイクロソフトのダウンロードサイトからIE.6をダウンロードしたばかりです。 Windowxs98 SecoundEditionです。 また、IEの「ファイル」-「送信」-「リンクを電子メール」ででも、同じ結果です。 何卒、よろしくお願いします。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- fukaura
- 回答数3
- VBからAccessのデータベースをよみたい。けどエラー
こんにちわ 先日 http://oshiete1.goo.ne.jp/kotaeru.php3?q=681876 でVBからアクセスのデータベースを読み込むことで 質問したものです。 (VB6.0 Access2000 Win2000でやってます) VB6.0にバージョンアップし(DAO3.6を選択するため)、変数も定義できたのですが、 Private Sub Form_Load()の部分で(以下) Set wspace = DBEngine.Workspaces(0) Set dbname = wspace.OpenDatabase(mypath & "\db1.mdb") dbname.QueryTimeout = 0 .QueryTimeoutに対してコンパイルエラーがでてしまいます。「メソッドまたはデータ メンバが見つかりません」というものです。そういえばOpendatabaseなどは「.」を打った時点でメソッド?の一覧が出るのですが、QueryTimeoutはでてきません。 DAO3.6以外にもなにか追加しないといけないのでしょうか? ヘルプで見たのですがメンバとは「コレクション、オブジェクト、またはユーザー定義型を構成する要素。」・・・ということでチンプンカンプンです(ノД`) ちなみにdbname.QueryTimeout = 0の部分をコメントアウトすると、その1つ前の行に対して「型が一致しません」とでてしまいます(ノ∀;) Accessを読み込んだ後は特に複雑なことはしないので(足したり参照する程度)、ここさえのりきれば・・・なのですがエラーばかりでて困ってます(ノД`) それともdb1.mdbファイルじたいがなにか読み込めない形式になってることが原因なのでしょうか? VB超初心者にもわかるようにコメントいただけると嬉しいですM(__)M
- 締切済み
- Visual Basic
- noname#5213
- 回答数1
- W2KでのxcopyによるDVD-RWへのコピーに関して。
HDDの内容をxcopyを用いて、DVD-RWに特定のディレクトリな いの更新されたファイルだけをコピーすることを考えています。 BATファイルを作製して試したのですがうまくいかないので、アドバイス をお願いします。 うまくいかないと言うのは、更新していないファイルまでコピーされてしま う点を指しています。パケットライトソフト販売元のサポートの回答に従い、 DVDドライブの制御に絡みそうなソフトは全て削除し、ドライブのファーム ウェア、デバイスドライバの更新なども行いましたが改善しません。 また、DVD-RWへの書き込み際の遅延書き込みの問題かとも思い、一旦 ディスクを取出した後に再度バッチファイルを実行しましたが、やはり、更新 していないファイルをコピーしてしまいます。 コピー先をDドライブ(HDD)にすると、思ったとおりの動作をします。 (更新されたファイルのみをコピーする) コピー先をFドライブ(CD-RW)にするとEドライブと同様、未更新の ファイルもコピーされます。 DVD-RW、CD-RWともにウルトラDMAモード転送の設定にしています。 他に何か確認すべき点はあるでしょうか? バッチファイルの内容(C:HDD、E:DVD-RW) C: xcopy \bat\*.* E:\bat /S /D /Y /V xcopy \db\*.* E:\db /S /D /Y /V xcopy \bmdb\*.* E:\bmdb /S /D /Y /V xcopy \net\*.* E:\net /S /D /Y /V
- 締切済み
- Windows NT・2000
- k75c
- 回答数1
- SQLでの処理
開発環境:WindowsXP、VB6、Access2000 ADO接続前提 ファイル全体のデータ(全レコード)に対して連続して処理するにはSQLで対応するのがいいのだと思いますが やりかたがわかりません。 たとえば、つぎのようなAccessのファイルがあったとします。 ファイル名:kojin.mdb テーブル名:name_tbl 名前 年齢 性別 太郎 20 M 花子 40 F 三郎 30 M 洋子 50 F 質問1 年齢順にレコードを並べかえる。 質問2 性別のFをWに一括変換する。 なお、SQLの文法を質問しているのではありません。 下のプログラム1でレコード表示を行ってます。 また、省略しますが、次のレコードや前のレコードを表示したり、レコードの更新・追加・削除などを行うこともできています。 これからどうすればSQL文を使って質問1や2の処理が可能になるのでしょうか? ご教授お願いしたします。 <プログラム1> Private mCn As ADODB.Connection Private mRs As ADODB.Recordset Private DBfile As String 'DBファイル名 Private DBtable As String 'テーブル名 Private Sub Form_Load() DBfile = "kojin.mdb" DBtable = "name_tbl" Call ConnectType Call SetFields End Sub Private Sub ConnectType() 'DB接続準備処理 Set mCn = New ADODB.Connection mCn.ConnectionString = DEF_CONNECT & App.Path & "\" & DBfile mCn.Open Set mRs = New ADODB.Recordset mRs.Source = DBtable mRs.ActiveConnection = mCn mRs.CursorType = adOpenDynamic mRs.LockType = adLockOptimistic mRs.Open End Sub Private Sub SetFields() Text1.Text = mRs.Fields("名前") Text2.Text = mRs.Fields("年齢i") Text3.Text = mRs.Fields("性別") End Sub
- 締切済み
- Visual Basic
- gorou
- 回答数2
- ASPのサービスが停止してしまう
はじめまして、高橋です。OKWebは初めてです。 ASPで社内用のWebアプリケーションを作成し、運用中なのですが 時々(現在のところ2~3日に1度)、サーバのASPのサービスだけが 停止してしまい困っています。 ASPが実行できなくなってもノーマルなHTMLファイルは正常に表示されます。 サーバを再起動すれば復活するのですが・・・ 具体的には 最初のユーザー認証の画面(ASPファイルですが、DBへのアクセスは無し) は表示されるのですが、パスワード確認用のスクリプトへSUBMITすると 砂時計状態になってしまいます。 どうもDB(mdb)へアクセスする部分で停止しているような気がします。 サーバはNTServer4.0 + IIS4.0です。 社内の人間に聞き取り調査をした結果、 以下2点の原因らしきものが考えられました。 (1)ASPスクリプト内で作成したオブジェクトを明示的に開放していない事。 これに関してはすべてのオブジェクトについてNothingキーワードにて 明示的に開放しました。 (2)ODBCの設定で、バッファの容量が少ない。 これに関しては初期値が512(KB)になっていたので ひとまず2048(KB)に変更してみました。 以上の対策は取ってみたものの、 未だ原因がわからず不安定な状態が続いています。 皆様は、同様の経験がありますでしょうか? もしくは、別にこんなことが考えられるといったご意見もありましたら御教授ください。 よろしくお願いします。
- 締切済み
- Microsoft ASP
- noname#380
- 回答数3
- 8cmフルレンジ一発の自作スピーカー
皆様はじめまして。 当方、スピーカー工作を趣味としている一マニアです。 個人的趣向により主に8cmフルレンジ(というよりFE83系)一発のシステムを 25年近く飽きもせず作り続けていますが、最近はさすがに少々ネタ切れ気味となり、 このあたりで何か新しい試みのハコに取り組みたいと考えています。 過去に製作の物はバスレフ、DB、BH、音響迷路、QWT、TQWTの各形式です。 純正長岡式に始まり、フォステクス設計、各アレンジ版、オリジナル、その他諸々 といった感じで楽しんできました。ちなみに当方お気に入りの8cm一発システムは 下記の通りで、リファレンス機は長岡式F-88の改造型です(先生の作品中では恐ろしく マイナーな機種ですが、音は本当に素晴らしいと思います)。 長岡鉄男氏設計 ・F-81 スリムエイト (音響迷路を基本とする動作) ・AV-88 (同上・初出時型番AV-9) ・F-88 (DB) ・D-88 スーパーフラミンゴ (BH) ・D-99 エイトマン (BH) 炭山アキラ氏設計 ・カイツブリ (BH) 近藤浩氏設計 ・超シンプルバックロードホーン (BH?) ・立ち聞きスピーカー (BH?) フォステクス設計 ・クラフトハンドブック3掲載 FE83ダブルバスレフシステム 自前の設計で好感触を得た物については以後も継続的に改良を楽しんでいますが、 上記の他に何か面白い作例がありましたら是非ともご教授頂きたく、 皆様よろしくお願い致します。
- ベストアンサー
- オーディオ(ホーム)
- noname#156650
- 回答数5
- 外付けHDDへのバックアップ方法と、復旧の手順
質問が何点かあるのですが、 1:USB2.0接続の外付けHDDを買ったのですが、内蔵HDDのCドライブを丸ごとバックアップ出来ないのは何故ですか?(容量は外付けの方が大きいのです) 2:Cドライブ>Documents and Settings>【メインで使ってるユーザー名のフォルダ】内を全部バックアップを取ろうと思ったんですが、以下のファイルがコピーできなかったようです。 AcrF414.tmp UsrClass.dat UsrClass.dat.LOG ntuser.dat ntuser.dat.LOG CardSpaceSP2.db CardSpaceSP2.db.shadow このうち、ntuser.datファイルはネットで調べたら”Windowsの各ユーザー設定が保存されているファイルです。”との事ですが、このファイルが保存できなければバックアップの意味が薄れると思います。しかし、他のユーザー名(管理者)でログインすればコピーできるようですが(?)、この方法で外付けHDDに保存しておけば良いでしょうか? また、もしそれがマズイとすれば、具体的にもしCドライブ(内蔵HDD)がダメになってしまった時は、どのようにトラブル前の状態に復旧できるのでしょうか。 3:上記の、コピーできなかったファイルのうち、ntuser.datファイル以外のものはそれぞれどういうものでしょうか?また、これらはバックアップできなくても、いざデータの復旧が必要になった時には差し支えのないファイルなのでしょうか。 3つもあってすみませんが、分かるものだけでもけっこうなのでよろしくお願いしますm(_ _)m
- ベストアンサー
- ドライブ・ストレージ
- kazukundegozaru
- 回答数3
- no confilict で value値が取れな
いつもお世話になっています。 以前にも質問した事があるのですが、 ちょっと違う事象が出てきたので、 質問させて下さい。 AjaxとjQueryを競合させているため下記のように記述しました。 Query.noConflict(); jQuery(document).ready(function($){ $("input").live("click",function(){ e = $(this).attr("id"); ev = e.substr(0,e.lastIndexOf('[')); if(ev == 'mod' || ev == 'refer' || ev == 'del'){ //一覧のレコードを取得 list_flg = 1; fno = e.lastIndexOf('[')+1; lno = e.lastIndexOf(']'); no = e.substr(fno,(lno-fno)); //hidden位置取得 input_no = (no == '1') ? 0 : parseInt(no) + 6; //hiddenの値取得 code = ($("input").eq(input_no).val()); } else if(e == 'insert' || e == 'update' || e == 'delete'){ //DB登録時 //新規・編集確認画面からの遷移時 db_flg = 1; ev = e; code = $('input').eq(0).val(); if(ev == 'update' || ev == 'delete'){ //編集及び削除時はdefault_codeで既存codeのエラーチェックを行う default_code = $('input').eq(1).val(); } } } } 下記の記述をしないと値がとれないのです。 code = $("input").eq(input_no).val(); 本当なら下記のように記述したいのですが、駄目でした。 code = $('edt_code').val() document.getElementById('edt_code').value とすれば取れるのですが、折角portotype.jsを使っているので、 $('edt_code')としたいのです。 尚、日本語リファレンスに記述している事もやった結果です。 またjqueryはinnerHTMLで記述したもので取得するため、liveメソッドを使用しています。 どうかご教授願えないでしょうか。
- PHPからmySQLに接続できない
自宅サーバー(PHP4.3.9+mySQL4.1+Windows2000)で構築を試みています。 PHPからmySQLに接続するのに次のようなソースを試してみました。 <?php $mysql=mysql_connect("localhost","user","password"); if(mysql_select_db("dbname", $mysql)){ print "OK"; }else{ print "NG"; } ?> 次のようなエラーが返りました。 Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\create.php on line Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\create.php on line このエラーについていろいろ調べたのですが、mySQL4.1以降からパスワードのハッシュが変更になっており、PHPからアクセスできないという記事を見つけました。 解決方法としてmySQL起動時に「--old-passwords」オプションをつければよい、という記事だったのですが、 質問1:このエラーは果たしてパスワードの問題なのでしょうか。他に考えられる原因はないでしょうか。 質問2:Windowsの場合、mySQLはサービスとして起動しているのでオプションをどのようにつければいいのかわかりません。 質問3:PHPのバージョンが上がるにつれ、この問題は解決するのかもしれませんが、現段階でPHP側で解決する手段はないのでしょうか。 ちなみにコマンドラインから c:\>c:\mysql\bin\mysqlshow Access denied for 'ODBC'@'localhost'(using password:NO) となります。 コマンドラインからはログインでき、テーブルなどの作成は済んでいます。 よろしくお願いします。
- MDBのフィールド数が多いとエラーになります。
下記のコードは、 (1)フォームロード時にアクセスのデータベースにアクセスし、データグリッドビューに表示 (2)フォーム上のデータグリッドビューを編集 (3)データベースに登録ボタン押下すると、フォーム上にあるデータグリッドビューをアクセスのデータベースに反映(update) という作業を行うプログラムです。 このコードを実行した場合、アクセスのデータベース(登録.mdb)のフィールド数の100以上になると、「クエリーが複雑すぎます」とのエラーが出て、データベース(登録.mdb)の更新が行えません。 何とかエラーを出なくする方法は無いでしょうか? PC環境はWINXP+VS2008です。 Imports System.IO Imports System.Data Imports System.Windows.Forms Public Class Form1 Public dAdp As OleDb.OleDbDataAdapter Public dSet As DataSet = New DataSet("T_資料") Public Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ''▼フォームロード時の処理 Dim cn1 As New OleDb.OleDbConnection("Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=" & Application.StartupPath & "\登録.mdb;") Dim cmd1 As New OleDb.OleDbCommand("SELECT * FROM T_資料", cn1) cn1.Open() dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM T_資料", cn1) dAdp.Fill(dSet, "T_資料") Me.DataGridView1.DataSource = dSet.Tables("T_資料") cn1.Close() End Sub Public Sub cmd_Db_reg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Db_reg.Click '▼「データベースに登録」ボタンを押下したときの処理 Try Dim Builder As New OleDb.OleDbCommandBuilder(dAdp) Builder.GetUpdateCommand() dAdp.Update(dSet.Tables("T_資料")) MessageBox.Show("更新に成功しました。") Catch ex As Exception MessageBox.Show("更新に失敗しました。" + vbCr + ex.Message) End Try End Sub End Class
- 締切済み
- その他(データベース)
- higuchi-yu
- 回答数1
- 今後Windows8でのシステム利用について
数年前まで開発会社側におり、今はユーザ側で社内SEをしております。 とは言え、中小ですので、自社システムの開発はほとんど行わず、情報システム部もないため、ほぼベンダー依存と言う状態で、スキル停滞という有様です。仕事の中心は、ヘルプがほとんどです。 Windows8が出てきて、関連会社の社員が購入したのですが、弊社はXPがまだ主流です。7は正直使いづらく、XPマシンを大量に買っております。7利用、Office2007以降は、使いづらいと社内からもクレーム出ておりますので。 既にクラウドシステムがでてきておりますが、大手企業の基幹システムや内製企業の場合、クラウドシステムを利用する事は、あまりないように感じます。となると、クライアントマシンは、Windows8を視野に入れての開発をするのでしょうか?。その場合、どのような対策をされてますでしょうか?。 それともWindowsPCは使ってない企業様はありますでしょうか?。 私自身、元々インフラ系でしたことから、サーバ、DB、パソコンというシステム構成は、ほとんど携わってきておりません。UNIX利用でしたが、サーバというよりホストと未だに言った方がしっくりきます。DBもOracleやSQLサーバなど使っておりませんでした。扱うデータは、オンラインデータ中心でもありましたので。クライアント機もパソコンが対象のものはありましたが、専用卓が中心でしたので。
- 締切済み
- SE・インフラ・Webエンジニア
- tachin
- 回答数2
- jsp、サーブレットの質問です。
Tomcatを使用してjspとサーブレットを使い掲示板のような投稿サイトもどきを作成していますが解決できない部分があります。 ↓は表示用のjspです♪ <html> <head> <title>Insert title here</title> </head> <body> <% String lsts = (String)request.getAttribute("lst"); %> <table border="4"> <tr> <td>日時</td> <td>タイトル</td> <td>スレッド主</td> <td></td> </tr> <tr> <td><%for(int i = 0; i<lsts.length(); i++){ out.println(lsts); } %> </td> <td><%out.println(); %></td> <td><%out.println("");%></td> <td> </td> </tr> </table> </form> </body> </html> こちらがサーブレットです otected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /*DB接続処理は省略します*/ try{ ps = (PreparedStatement) con.prepareStatement(sql); String sql = "select * from thred"; ResultSet rs = ps.executeQuery(); //テーブル内一覧取得 while(rs.next()){ rs.getString("time"); rs.getString("title"); rs.getString("id"); rs.getString("thredid"); String s = (rs.getString("time")+","+ rs.getString("title")+","+rs.getString("id")); String[] lsts = s.split(","); List<String> thlists = Arrays.asList(lsts); String ss = (thlists.get(0)); request.setAttribute("thlst",ss); RequestDispatcher dispatcher= request.getRequestDispatcher("/list.jsp"); dispatcher.forward(request,response); } }catch(SQLException e){ e.printStackTrace(); } catch(ClassNotFoundException e){ e.printStackTrace(); }finally{ try { con.close(); } } } jspの方にサーブレットでthredDBから抜き取ったtimeとtitleとidを全て表示させたいのですが 現状だと 2014-06-03 06:45:02 aaaa 1 の行だけがたくさん表示されてしまいます 恐らくスコープを取得した時点でこの↑の1行のものしかとれてこれていないのだと思います... どのように処理を行ったらよいのでしょうか? DBの中身は画像添付いたしますっ
- 締切済み
- Java
- kurooooooonn
- 回答数1
- SQLServer 分散トランザクションについて
現在サーババージョンアップに伴うストアドの動作検証を行っています。 内容としては2000で動作していたものを2008R2に移行するだけです。 そこでひとつ問題が発生して作業がとまってしまいましたので、 お力を借りたく、質問させていただきます。 環境としては、クライアントはACCESSプログラム、DBはSQLServerとなっています。 ストアドの実行で下記のように記載していたプログラムが動作しなくなりました。 Set adoCN = New ADODB.Connection adoCN.Open CurrentProject.Connection adoCN.BeginTrans adoCN.Execute "exec dbo.実行ストアド" 'エラー判定 adoCN.CommitTrans 上記エラー判定で「リンク サーバー "(null)" の OLE DB プロバイダー "SQLNCLI10" から、 メッセージ "アクティブなトランザクションがありません。" が返されました。」 となってしまいます。 また、このストアド内では「SET XACT_ABORT ON ~ SET XACT_ABORT OFF」 としてあります。 ちなみに、上記「adoCN.BeginTrans」、「adoCN.CommitTrans」をコメントすると、 正常に動作しました。 「SET XACT_ABORT ON」としているので「adoCN.BeginTrans」はなくてもいいと思うのですが、 明確に『不要である』としている文献等、見つからなかったため、迷っています。 サーバはバージョンアップに伴い、分散トランザクションを使用するようになっていますが、 この変更が影響しているのかどうか、まったく別の原因なのか、わからない状態です。 うまく伝わっているか心配ですが、どうぞ宜しくお願い致します。
- 締切済み
- SQL Server
- ipsum11
- 回答数1
- phpでSQLSV2005の画像を表示する方法
いつもお世話になっております。 php5.1でSQL Server 2005のIMAGE型内の画像を表示するにはどうすればよいでしょうか。 以下のソースでデータを読み込んで出力しようとしていますが、 ブラウザには × が表示されてしまいます。 **** phpここから ************************************************************* header("Content-Type: image/jpeg"); header("Content-Disposition: inline;"); header("Content-Transfer-Encoding: binary"); $con = mssql_connect("xxDBサーバxx", "xxIDxx", "xxパスワードxx"); if (!$con) { print("データベースへの接続に失敗しました"); exit; } if (!mssql_select_db("xxDB名xx")) { print("データベースへの接続に失敗しました"); exit; } $sql = "select img_data from foo "; //img_data は IMAGE型 $result = mssql_query($sql); if (!$result) { print("SQLの実行に失敗しました<BR>"); exit; } $row = mssql_fetch_row($result); echo $row[0]; **** ここまで ******************************************************************** DBのフィールド img_data には数百KBの画像データが入っているはずなのですが、 試しに strlen($row[0])の値を見てみると、4096でした。 4KBしかデータを得れていない様に見えます。 もしかすると、特殊な変換をしないとデータを得ることができないかとも思ったのですが、 同じテーブルを使用するVB6.0のプログラムでは以下の様な問合せで表示できている様子です。 SQL: SELECT img_data FROM foo もしかすると、PHPは特殊な処理をしないとデータを得ることができないのでしょうか・・・? お詳しい方がいらっしゃいましたら、何卒ご教授をお願い申し上げます。 何卒よろしくお願い致します。
- 締切済み
- PHP
- p2heycocoon
- 回答数1
- SQL Serverの復旧モデルについて
SQL Serverの復旧モデルについてご教授願います。 (質問が分かりにくいかもしれませんが、ご容赦ください。。。) 現在、あるシステムで 復旧モデルが「フル」であるDBがあります。 しかし、トランザクションログのバックアップをとっていないため、 ログファイルが肥大化し、当該DBを格納しているディスクドライブ(C)を 逼迫している状況です。 これを機に、復旧モデルを「シンプル」に変更し、 ログファイル肥大化を防ごうという方針で話が進んでいます。 そこで、「シンプル」した場合、以下の点についてを確認したいと思います。 ○障害発生時の復旧は最後にデータをバックップした時点までである。 (データは、毎日フルでバックアップ) ⇒「シンプル」の場合、ログのサイズが、全体のログファイルの70%に達した場合は チェックポイントが発生し、ログが切り捨てられるというのを聞いたのですが、 これは「ログが全く残らない」ということでよろしいでしょうか? たとえば、10/1に最後にデータバックアップができ、 10/2に新たにデータ更新等があったとします。 その過程で、ログ量が全体の70%に達した場合は10/2更新分のログも切り捨てられ その後障害が発生した際には、10/2更新分のデータは復旧できない という認識で間違いないでしょうか? 説明足らずな箇所が多大に含まれているかと思いますが ご教授よろしくお願いします。
- 締切済み
- その他(ソフトウェア)
- babystar0130
- 回答数1
- 条件を複数与えたい
お世話になります。 ネットショップでの送料の計算を行いたいのですが、どのようなSQL文が適切なのか、アドバイスを頂戴したく質問させて頂きます。 以下のようなテーブルがあり、都道府県、サイズ、送料が登録されています。 no addr size price 1 大阪府 140 630 2 大阪府 160 840 3 福岡県 140 735 商品毎に商品サイズ、および発送先(都道府県別)によって、送料を抽出したいと考えているのですが、 1.同じ都道府県の登録、かつ不注意により同じサイズが登録されている。 ・・・この場合は、LIMIT 1として抽出。 2.該当するサイズが登録されていなかった。 ・・・この場合は、同じ都道府県から一番大きな金額を抽出。 3.該当する都道府県が登録されていなかった。 ・・・この場合は全てから一番大きな金額を抽出。 と、考えられる想定を事前に施しておきたいのですが、この場合どのようなSQL文になるのでしょうか? PHPで制作しているのですが、1つのSQL文が思いつかずTRUEとFALSEで処理する形になってしまい、該当する都道府県がなかった場合は、結果、3度もDBに問い合わせてしまう形になっています。 お忙しいなか恐縮ですが、アドバイスなど頂戴出来れば幸いです。 申し遅れましたが、DBはMySQLの5を利用しています。 宜しくお願い致します。
- Resultsetについて困っています。
Struts DBからデータを取得し、名称をコンボボックスに設定しようとしています。具体的には、一つの商品に登録してあるサイズと色をコンボボックスで表示しようとしています。 取得した値をbeanにセットしようとしているのですが、取得する値が複数ある項目が、複数ある場合について質問させて頂いております。 下記のように”SELECTDETAIL”でDBから1行 の項目の値を取得しています。列項目は"ID"と"NAME"です。 この先、"SIZE"と"color"の値をbeanにセットしようとしているます。"SELECTDETAIL"で取得するのは1行で、サイズと色は複数行なのでこの二つは"public List<Product>・・・"でbeanにセットしようと思っています。しかし、サイズと色の取得する行数は異なるので、それぞれ"public List<Product>・・・"を作った方がいいのでしょうか?お願い致します。 ---ProductはActionFormです--- private static final String SELECTDETAIL = "select * from goods_info where ID=?"; public Product getProduct(int ID) throws Exception{ Connection con = source.getConnection(); PreparedStatement pStmt = null; ResultSet rs = null; try{ pStmt = con.prepareStatement(SELECTDETAIL); pStmt.setInt(1,ID); rs = pStmt.executeQuery(); if(rs.next()){ return getProduct(rs); } }catch(SQLException ex){ throw ex; }finally{ if(rs != null){ rs.close(); } pStmt.close(); con.close(); } return null; } ---ActionFormにセット--- private Product getProduct(ResultSet rs) throws SQLException { Product pro = new Product(); pro.setGoods_info_id(rs.getInt("ID")); pro.setGoods_name(rs.getString("NAME")); return pro; }