検索結果

DB

全10000件中8861~8880件表示
  • 全てのカテゴリ
  • 全ての質問
  • テーブル定義書作成時のIndex付加について

    基礎的なことで申し訳ございませんが、 お力添えよろしくお願いいたします。 CentOs 5 & PostgreSQL 8.4.9にてDB構築しております。 DB構築から、テーブル作成・項目追加・キー設定まで行いまして、 検索する際に、抽出件数が多く負荷のかかりそうなものに Indexを作成しようと考えております。 ■本題  1.Indexを作成する対象となる項目の、目安としてどのようなものが考えられるでしょうか。   ・キー対象の項目になっているもの   ・検索条件の対象となる項目なども当たるでしょうか  2.項目をまとめて一つのIndexにするメリット・デメリットはどのようなものでしょうか   3.テーブル結合したときのIndexの動作    例) 下記のようなテーブルがあった場合 tablea(データ50000件程度) hoge_id pkey1 hoge_no hoge_nm ... tableb(データ150000件程度) test_id pkey1 hoge_id pkey2 hoge_betu_kb ...     select t1.hoge_id, t1.hoge_nm, t2.hoge_betu_kb rom tablea as t1 leftjoin tableb as t2 on t1.hoge_id = t2.hoge_id where t1.hoge_id > '100' and t1.hoge_nm like 'あいう%'   このような場合のIndex作成は、 A. Create index idx_tablea_hoge_id ON tablea (hoge_id); B. Create index idx_tablea_hoge_id ON tablea (hoge_nm); C. Create index idx_tableb_hoge_id ON tableb (hoge_id); ←tableaで指定しているのでこれは不要?  4.A.B.C.のようなIndex作成した際のテーブル定義の書き方   テーブル定義書のフォーマットは定められており、お門違いな質問かとは存じてはおりますが、   テーブル定義にIndex定義を書く場合に、添付した画像のようなフォーマットの書き方が   よく理解できずお気づきの点などございましたら、ご指摘願えたら助かります。   (以前は、CSEツールなどで自動出力される定義書のような書き方をしていたもので・・・)         例)tablea IDX1 IDX2 IDX3 hoge_id 1 hoge_nm 2 このような書き方になるのかどうか?      IDX2, IDX3の項目とは?どのようなIndex定義をした際に書き込むことになるのかが判らず。。。      基礎から勉強しなおすべきとは存じておりますが。。。 現状の期間あまり時間がないことと、 DB構築を一人で行っており、このような内容を相談できるものがおりませんゆえ、 改めて、Index付加することを考えてみると、いまさら聞けないような内容かもしれませんが ちゃんと把握したうえで、テーブル構築したいと思いますので 今までの他の皆様の経験からのノウハウなども踏まえて、 ご教授いただけると大変助かります。

    • -0-y
    • 回答数1
  • リダイレクト元のURLの取得方法について

    現在、以下2つのphp5プログラム(+ PEAR::AUTH)で、なんちゃってフォーム認証するCGIを作成しています。 環境 Windows XP、Web SV IIS 5.1 (1) aaa.php  : PEAR:AUTHを使った、ログイン画面(フォーム認証CGI)。  : 機能 : MySQLに格納されたID/PWで認証する。認証OKだったら、bbb.phpが出力するDBレコードデータ参照ページへのリンク集を出力する。    リンク1)http://domain.jp/bbb.php?id=1001    リンク2)http://domain.jp/bbb.php?id=1002    リンクn)http://domain.jp/bbb.php?id=nnnn    ・・・といった感じで、DBに登録されたレコードを表示するCGIへのリンクをずらずら出します。 (2) bbb.php  : DBデータを整形し、多少見やすい形に加工したHTMLページを出力する。    この時、aaa.phpが認証OKの証?として出力したCookieが、    1.あったらHTMLページ出力し、     例1)http://domain.jp/bbb.php?id=1001 = 一意のキーid=1001の値で出力出来る、MySQL上のデータをHTML化したもの     例2)http://domain.jp/bbb.php?id=1002 = 一意のキーid=1002の値で出力出来る、MySQL上のデータをHTML化したもの     例n)http://domain.jp/bbb.php?id=nnnn = 一意のキーid=nnnnの値で出力出来る、MySQL上のデータをHTML化したもの    2.無かったら、     (a) http header 401を出力     (b) aaa.php(フォームログイン画面)にリダイレクトする。  一応、ここ迄はいいのですが、例えば、利用者が、上記例2のURLをブラウザ「お気に入り」で保存しておき、直接そのページをみたい、と言った時、リンク指定先のbbb.phpは、  ・ そのユーザがログインしていない場合(Cookieが無い場合)、aaa.phpのログインフォームへリダイレクトする  ・ aaa.phpは認証後、リンク集ページを出力する、  といった動作になってしまいます(てゆうかそうゆう作りなんで当たり前ですが・・・)。  そこで、aaa.phpの機能で、  ・ 「どのURLから、リンク(リダイレクト)されてきたかを判定するロジック」を入れ、もし、「bbb.php?id=xxxx」だったら、   ・ 認証OK後、直接、そのbbb.phpが出力するHTMLのURL(http://domain.jp/bbb.php?id=xxxx)に、再度リダイレクトする処理を入れれば良い?、   のかなーと短絡的に考えました。  で、問題となるのが、aaa.phpが表示された時、どこからリダイレクトされてきたか(リダイレクト元のURL)を知る方法です。  そこで、PHPの、$_SERVER[HTTP_REFERER]を入れてみた所、  ・ bbb.phpにリダイレクトされる前のURLが、$_SERVER[HTTP_REFERER]に入っている(多分、別のHTMLのbbb.php?id=~へのリンク集?)  ・ $_SERVER[HTTP_REFERER]の中が空(URL直接指定?)  という現象で詰まってしまいました。  ここから抜け出す為、何か良いアイディア(別の方法、関数等)があればお知恵拝借したいと考えています(書いてある事を理解して頂ける文章か今イチ不安ですが・・・)。  何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとJavaScriptの連携について

    PHPとJavaScriptの連携をしたいと思いましたが、下記が分からなかったので、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 1. 下記の親ウィンドウで子ウィンドウを開く後、テキストエリアに文字を入力し、値をセットボタンを押すと、「親ウィンドウ」の「値が渡せます」には値が渡せますが、「値が渡せません」には値が渡せません。 違いはnameをtext00からdata[text02]に変更したのみとなります。 2. 下記のソースでは、子ウィンドウのテキストエリアに入力した内容をそのまま渡してますが、子ウィンドウのテキストエリアの情報を基に、PHPでデータベースを検索し、ヒットしたものを親ウィンドウに渡したいと思います。 下記のソースを例にすると、「値をセット」ボタンを押した後、テキストエリアの値を子ウィンドウのSELECT文のidに設定し、取得した$tmpの内容を親ウィンドウに渡したいと思います。 なお、記載のSQL文はシンプルですが、実際には複数のフィールドの値を取り、idの値も複数あります(下記のデータベースを例にすると、idに1と2を渡した際、親ウィンドウのテキストエリアに「あいうえお かきくけこ」と表示させ、idの値を隠し項目でもっていたいと思います)。 3. 上記2で親ウィンドウにデータベースの値を渡した後、子ウィンドウを開くクリック時、子ウィンドウのテキストエリアに渡したidの値を表示したいと思います。 【index.html(親ウィンドウ)】 <script type="text/javascript"> <!-- function window_open() { window.open('sub.php',null,'width=640, height=480, scrollbars=yes') }; //--> </script> </head> <body> <form action="index.php" method="post" name="form00" id="form00"> <a onclick="window_open()" href="javascript:void(0)">子ウィンドウを開く</a> <br /> 値が渡せます <input type="text" name="text00" value="" readonly="readonly" /> <br /> 値が渡せません <input type="text" name="data[text02]" value="" readonly="readonly" /> </form> </body> 【sub.php(子ウィンドウ)】 <script type="text/javascript"> <!-- function Set() { window.opener.document.form00.text00.value=document.form01.text01.value; window.opener.document.form00.data[text02].value=document.form01.text01.value; window.close(); } //--> </script> </head> <body> <form action="index.php" method="post" name="form01" id="form01"> <input type="text" name="text01" /> <input type="button" onclick="Set()" value="値をセット" /> </form> <?php /* $link=mysql_connect('localhost', 'データベースユーザ名', 'データベースパスワード名'); mysql_select_db('データベース名', $link); $query=mysql_query("SELECT nm_master FROM master_db WHERE id=2", $link); $tmp=""; while ($row=mysql_fetch_array($query)) { $tmp .= $row["nm_master"]; } echo $tmp; mysql_close($link); */ ?> </body> 【データベース:master_db】 フィールド名:(`id`, `nm_master`) (1, 'あいうえお'), (2, 'かきくけこ'); 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Disposeの動き

    VB2010でプログラム開発を行っています。 VB2010は初心者で、インターネットを使って調べながら構築していますので、ほとんど意味を理解していない状態です。 この度下記の文を書いたのですが、Point1で「Cmd.Dispose() 」を入れないとPoint2で「OleDbException が発生しました エラーを特定できません」のエラーになってしまいます。 そこで2つの疑問が出てきたので教えていただけないでしょうか。 疑問1: なぜ、Point1でDisposeしないとエラーになってしまうのか。 疑問2: Point1でDisposeすると、内容が破棄されると思っていたのですが、そのまま処理が進むようです。 なぜ、再度「Dim Cmd As New OleDbCommand」の宣言が必要無く、トランザクションも続いているのでしょうか。 また、よりスマートな書き方があればご教授いただけるとありがたいです。 よろしくお願いします。 Module Module1   Public Con As New OleDbConnection   Public Cmd As New OleDbCommand   Public bTrans As OleDb.OleDbTransaction   Public sb As New System.Text.StringBuilder() End Module Private Sub Btn_Kanryo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Kanryo.Click   Dim ExResult AS Integer        '新規トランザクションの開始。        bTrans = Con.BeginTransaction        'コマンドオブジェクトにトランザクション関連付け        Cmd.Transaction = bTrans        'DB更新1        sb = New System.Text.StringBuilder        sb.AppendLine("UPDATE A ")        sb.AppendLine("SET")        sb.AppendLine(" A_AA = '1'")        sb.AppendLine(" WHERE")        sb.AppendLine(" A_BB='123'")        Cmd.Connection = Con        Cmd.CommandText = sb.ToString        ExResult = Cmd.ExecuteNonQuery()        'ストアドプロシージャ―処理        Cmd.Connection = Con        Cmd.CommandType = CommandType.StoredProcedure        Cmd.CommandText = "AAA.ABC"        Dim outPara As New OleDbParameter("ERR_FLG", OleDbType.Decimal)        outPara.Direction = ParameterDirection.Output        Cmd.Parameters.Add(outPara)        Cmd.ExecuteNonQuery() Point1⇒ Cmd.Dispose()        'DB更新2        sb = New System.Text.StringBuilder        sb.AppendLine("DELETE ")        sb.AppendLine(" B")        sb.AppendLine(" WHERE ")        sb.AppendLine(" B_AA='1'")        Cmd.Connection = Con        Cmd.CommandText = sb.ToString Point2⇒ ExResult = Cmd.ExecuteNonQuery()        bTrans.Commit() End Sub

  • PHPで問題を出題するプログラムを作っています

    write.phpというファイルで入力し、hantei.phpというファイルでデータベースに格納を行おうとしています 回答欄はデータベース内の模範解答が入っているテー ブルのレコード数を数えてforループで表示しています。 表示された回答欄に回答を入力しても、データベースに格納されません。 調べたところ、forループで回す度に<input name="responce" type="text" id="responce">のなかのnameが変わらなければならないとのことです。 また、変化したnameを受け取って格納しなければならないと書いてありました。 エラー内容は Undefined index: responce0 in hantei.php on line 16 Undefined index: responce1 in hantei.php on line 17 Undefined index: responce2 in hantei.php on line 18 Undefined index: responce3 in hantei.php on line 19 Undefined index: responce4 in hantei.php on line 20 Undefined index: responce5 in hantei.php on line 21 となっていました 以下ソースコードです。 write.php <form action="hantei.php" method = "get"> <?php //データベースの選択 mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('text_book'); mysql_query('SET NAMES UTF8'); <?php //レコード数の計算 $ans = mysql_query("SELECT COUNT(answer) FROM `write` WHERE problem_id = 1"); //回答欄の表示 for($i = 0; $i <= $ans; $i++){ echo"$i"; ?> <dd> <input name="responce" type="text" id="responce" /> </dd> <?php } ?> <input type="submit" valued="送信する"> hantei.php <?php //データベースの選択 mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('text_book'); mysql_query('SET NAMES UTF8'); //回答結果の格納 $response = sprintf("INSERT INTO learner_responce SET responce='%s'", mysql_real_escape_string($_GET["responce0"]), mysql_real_escape_string($_GET["responce1"]), mysql_real_escape_string($_GET["responce2"]), mysql_real_escape_string($_GET["responce3"]), mysql_real_escape_string($_GET["responce4"]), mysql_real_escape_string($_GET["responce5"]) ); mysql_query($response) or die(mysql_error()); ?> <form method = "get" action = "write.php"> <input type="submit" valued="戻る">

    • ベストアンサー
    • PHP
    • X-bone
    • 回答数1
  • mysql sqlエラー

    先ほども質問したのですが再度質問させていただきます mysql limitページ分割を行っていてエラーは消せたのですが今度 SQLエラーになり出来ません 前の人が質問したのを参考にしてつくったのですがうまくいかず困っています 検索結果を10件ずつ表示して googleみたいに 1l 2l 3 みたいな感じやりたいです <body> <?php error_reporting(E_ALL ^ E_NOTICE); //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_GET['name']}%') or (住所 LIKE '%{$_GET['name']}%')"; $sql = "limit" . $page * 10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)){ $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td> </tr>"; //検索条件に該当する全データの件数取得 $sql = "select count(*) from tbl_test " ; $sql = "where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ; //前の10件 if ($page_num != 0) { echo "<a href = find.php?name=".$name. ". $page -1.>" ; echo "&lt 前の10件"; } //次の10件 if (($page_num + 1)*10 < $cnt) { echo "<a href = find.php?name=".$name. ". $page +1.>" ; echo " 次の10件 &g</a>t" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; } ?> </body> </html>

    • ベストアンサー
    • MySQL
    • noname#197690
    • 回答数3
  • CakePHP3 belongsTo NULL登録

    CakePHP3.0 を使用して、顧客情報を登録するアプリケーションを作成しています。 顧客情報には言語カラムがあり、外部の言語テーブルのコードを参照しています。 顧客情報の言語カラムはNULLを許容します。 DB [Table] client_entities | language_code1 | char(2) | NULL YES | MUL | | language_code2 | char(2) | NULL YES | MUL | | language_code3 | char(2) | NULL YES | MUL | | language_code4 | char(2) | NULL YES | MUL | | language_code5 | char(2) | NULL YES | MUL | | language_code6 | char(2) | NULL YES | MUL | [Table] languages | id | int(11) | NULL NO | PRI | | code | char(2) | NULL NO | UNI | CakePHPでは、Tableにアソシエーションの定義を追加しました。 (Controllerのindex()にも設定を追加していますが、edit()、update()は未変更です) ClientEntitiesTable public function initialize(array $config) { $this->belongsTo('Languages', [ 'foreignKey' => 'language_code1', 'bindingKey' => 'code', 'joinType' => 'LEFT' ]); ..... continue } LanguagesTable public function initialize(array $config) { $this->hasMany('ClientEntities', [ 'foreignKey' => 'language_code1', 'bindingKey' => 'code' ]); ..... continue } この状態で、顧客情報の登録・更新処理において、言語カラム未設定でsubmitすると、 NULLの状態で送られた情報が内部で空文字''に変換されてしまいDBの参照整合性エラーが発生してしまいます。 Error情報 Error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`cir`.`client_entities`, CONSTRAINT `client_entities_ibfk_7` FOREIGN KEY (`language_code2`) REFERENCES `languages` (`code`)) UPDATE client_entities SET language_code2 = :c0 WHERE id = :c1 解決方法として、TableクラスのbeforeSave()メソッドを内で空文字をNULLへ変換する処理を追加したのですが、 別のエラーが発生してしまいます。 Undefined variable: _SESSION [CORE\src\Network\Session.php, line 440] どなたか、CakePHPにて外部参照制約のついているカラムへNULLを登録する方法をご教授願えませんでしょうか?

    • 締切済み
    • PHP
    • asukamt
    • 回答数1
  • mdf&ldfファイルからフラットファイルへの書き出し

    お世話になっております。 この度、社内サーバ撤去に伴い現在使用しているSQLサーバーよりデーター抜き出し担当となりました。もっぱら、使う側だったので何をどの様にすればいいのか困っている超ド初心者です。件名についてご質問いたします。 以下の作業に入る前に、当カテゴリーの過去質問を参考にし進めています。 http://oshiete1.goo.ne.jp/qa4614355.html 現在サーバ上にてSQL2000を稼動させています。DBファイルであるhoge.mdf とhoge.ldfに関してはSQLサーバ停止後コピーまで完了しました。 クライアント(自端末)機に『SQL Server 2008 Express with Tools』を導入し接続及び該当DBへのアタッチ、テーブルフォルダー内も確認しました。 テーブルフォルダー内には、約20個程のテーブルが存在しています。 上記URLでは、復元出来たデータベースを右クリックし『タスク→エクスポート』でデータエクスポートウィザードよりフラットファイルで吐き出せばいいとの手順でした。ウィザードでは、テーブルを指定する項目が出てきますが。実際の所20個のテーブルに対して同操作を繰り返し手動で項目整理を行う事になるのでしょか。または、ウィザードの『転送するデータを指定するためのクエリを記述する〔W〕』を使用するのでしょうか。 クエリー記述の場合の相当する項目を現在把握していませんので全項目抽出を行い。Excel取り込み後削除できるとありがたいのですが。 最終形として、Excelに取り込んで管理していきたいと考えています。 当方の勝手な都合ですが、当サーバ撤去が目前に迫っています。 よろしくご助言の程お願いいたします。

  • DMZと社内LANは違うWindowsドメインにすべき?

    Windows NT4.0が出た頃に構築された社内LAN&インターネットサーバ環境を、今頃ようやくWindows Server 2003 R2 & Windows 2000 Serverで構築されたネットワークにアップグレードしようとしています。 現在の状態は(ネットワークを構築した当時のセキュリティの観点からなのか)インターネットサーバが置いてあるDMZと、社内LANがわざわざ別のNTドメインになっています。 今回、Active Directoryで構築し直すに当たって、やはり同じようにドメインを分ける必要があるのかどうか判らず、教えていただければと思い投稿しました。 現在は、社内LAN、mailサーバ、wwwサーバ、DBサーバ全てがWindowsNT4.0になっています。 mailサーバとwwwサーバにはそれぞれ社内LANのサブネットと同じプライベートアドレスが振ってあり、Firewallでグローバルアドレスに変換して外部からアクセスできるようになっています。これをDMZと呼んで良いのかどうか判らないのですが一応DMZと呼んでいます。 社内LANのNTドメイン(DOMAIN-Aとします)と、このDMZにあるmailサーバ、wwwサーバ、そして社内LANにあるDBサーバから構成されたNTドメイン(DOMAIN-Bとします)という二つのNTドメインが存在しています。 そして、OSが古かったからかもしれないのですが、DMZのNTドメインには以前外部から侵入された形跡があり、知らないユーザーアカウントが登録されたことがありました。そんなこともあったので、外部からアクセスできる領域は別のドメインにしておいた方がより安全なのかも、と思ったりしています。 しかし一方で「今はそんな面倒な組み方してる所はないよ」という話かもしれず、現在の主流な組み方が判らないので教えていただけないでしょうか。 よろしくお願い致します。

  • struts2 ファイル アップロード

    今、ファイルのアップロードのプログラム開発を行なっておりますが アップロードのボタンを押すとHTTPステータス500のエラーで実行ができません。 詳しい方、間違っている箇所のご指摘宜しくお願い致します。 プログラムは以下の通りです。(JAVAは一部削除しています) (JSP) <%@ page contentType="text/html; charset=UTF-8" %> <%@ page pageEncoding="Windows-31J" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="original" uri="/original-tags" %> <%@taglib prefix="originalJK" uri="/original-JK-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> %@ include file="html-head.jsp" %> <script type="text/javascript"> </script> </head> <body onload> <%@ include file="HeaderTitle.jsp" %> <div class="navigation" align="right"> <originalJK:CommonLinkTag mode="2" /><br> </div> <br> <s:form enctype="multipart/form-data"> <table width="100%"> <tr> <td> <INPUT type=file name="upload"> </td> </tr> </table> <table width="100%"> <tr> <td> <s:submit value="EXCELアップロード" cssClass="form_button" action="tEST11A" method="doUpload" onclick="return confirm('アップロードしてよろしいですか。');"/> </td> </tr> </table> </s:form> </body> <html> (JAVA) @ParentPackage(value = "Original") @Results({ @Result(name = "success", value = "jsp/TEST11A.jsp"), @Result(name = "failure", value = "jsp/TEST11A.jsp") }) public class TEST11AAction extends SuperAction { private String aBtnUpdateMsg = ""; private File upload; private String uploadContentType; private String uploadFileName; public String execute() throws Exception { return "success"; } public String doUpload() throws Exception { try { // DBコネクションオープン vDb.open(); TEST11ADao vDao = new TEST11ADao(vDb); int vCount = 0; //データ存在チェック vCount = vDao.dbCntLine(); FileInputStream fis = new FileInputStream(upload); POIFSFileSystem fs = new POIFSFileSystem(fis); // ワークブック・オブジェクトの取得 HSSFWorkbook wb = new HSSFWorkbook(fs); // 総ワークシート数の取得 int sheets = wb.getNumberOfSheets(); // ワークシートごとに、データを取得 int idx = 0; for (int sheetIdx = 0; sheetIdx < sheets; sheetIdx++ ) { //コミット vDb.commit(); } finally { // DBクローズ vDb.close(); } return "success"; } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; }

  • ASP2.0からSQLserver2000への認証

    開発環境:VisualStudio.net2005 ASP.net DB:SQLServer2000 ログインコントロールで下記のコードを作成したところ 開発環境ではうまくいっているのですが、Webサーバーにリリースしたところうまくいきません。 ------------------------------------------------------------------------------------------------------------- Protected Sub Login1_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles Login1.LoggingIn ' 入力されたユーザーID、パスワードでusrテーブル内のレコードを検索 Dim objDb As New SqlConnection("Data Source=dbserver;Initial Catalog=testdb;Persist Security Info=True;User ID=testusr;PassWord=hogehoge") Dim objCom As New SqlCommand("SELECT * FROM member WHERE LoginID=@LoginID AND LoginPass=@LoginPass", objDb) objCom.Parameters.Add("@LoginID", Login1.UserName) objCom.Parameters.Add("@LoginPass", Login1.Password) objDb.Open() Dim objDr As SqlDataReader = objCom.ExecuteReader() If objDr.Read() Then ' 検索の結果、該当するレコードが存在した場合、認証は成功 FormsAuthentication.RedirectFromLoginPage(Login1.UserName, False) End If objDb.Close() End Sub ---------------------------------------------------------------------------------------------------------------- DB内のデータはとれている(objDrの中身が入ってることをデバック実行にて確認) ので、認証の部分で失敗しているのかと思い http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000010.aspx 等を参考してみたのですが、 「サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました) 」 というメッセージが出力されて、認証ができません。 どなたかアドバイス等ありましたらご教授できませんでしょうか。

    • kan4
    • 回答数2
  • データのインポート時の文字化けについて

    現在、レンタルサーバ(Linux)のMySQLのDBにクライアント端末(Windows)からデータをインポートさせようとしている状態です。 この時にサーバ側のキャラクタセットがlaten1である為、 sjisのデータを入れようとすると文字化けが発生してしまいます。 こちらの希望としては、 ・DBへ挿入するデータはEUC-JPまたはsjisのテキストファイルをインポートさせたい ・クライアント端末のMySQLは現在sjisで設定しており、それでテストを行っていたのでサーバもそれに合わせたい ・sjisで文字化けが生じてしまう可能性があるならEUC-JPなどでも構わない と考えています。 サーバのMySQLのキャラクタセットについては character_set_client = sjis character_set_connection = sjis character_set_detabase = sjis character_set_results = sjis character_set_server = sjis character_set_system = utf8 となっており、これはSQLのSETコマンドと/etc/my.cnf という設定ファイル双方から修正しました。 (MySQLを再起動した際にcnfファイルの設定が優先されるのかも・・・と感じたのですが、個人的見解なので誤ってたらご指摘お願いします。) また、character_set_system = utf8 については変更不可のようですね。これはバグなのでしょうか? バグだとすれば、これに合った文字コードの設定をする必要はあるのでしょうか? データのインポートの際はツール(かねやんMySQLAdmin)を使用しているのですが、 この設定にも関わらず、サーバのキャラセットは「laten1」であるというメッセージが出てくるので理解に苦しんでいます。 character_set_systemの設定の影響でしょうか? それとも他に文字コード関連の設定箇所があるのでしょうか? どなたかお分かりになる方、教えて下さい。

    • ベストアンサー
    • MySQL
    • skrimk
    • 回答数1
  • このくらいは当然?

    6月半ばに、とある会社に事務職で入社しました。 「法律関連の資料を作る為、会社の顧問弁護士とやり取りを担当、資料作りがすんだらそれをDB化する作業を」という業務で、「残業はほとんどなし」という条件を伺い、入社を決めました。 しかし入社して早々連日2~4時間の残業があり、その後も今まで10日に一回の割合で終電を逃しています。(これは弁護士の先生の都合によるもので、会社の指示ではないですが、会社と弁護士の力関係上、何の申し入れもできないようです) そのうえ、入社して5日後には、その業務を担当していた方たちがみな海外出張に出てしまい、ろくに業務について教えていただくこともないまま一週間単独でその業務をこなさなくてはならない状況になりました。(その間は幸か不幸か何の事件も起こりませんでした) 今後の業務についても、「資料をDB化」というプロジェクトはいったん白紙になるようで、「8月からは今後は保険関連のお仕事の手伝いを」と言われました。 入社してみたら最初に聞いた条件と違い、しかも入社して一月半で最初に聞いた業務と違う業務を言い渡されてしまい、ちょっと混乱しています。退職ということも考えています。 結局は自分が適応できるかできないかというところなのだろうと思うのですが、今まで長い間派遣としてのキャリアしかなかったので、このくらいで混乱しているのはいけないのかとも思うのです。どうか皆さんのご意見をお聞かせいただければと思います。

  • WEBサービス提供による、損害賠償請求のリスク

    https://okwave.jp/qa/q9375905.html の続き こちらで、WEBサービス提供による、損害賠償請求のリスクはほとんどないというご回答をもらったのですが、 そのように考えて大丈夫ですか? 改ざんされて、ウイルス感染に至った場合、リカバリにかかった費用を請求される可能性はどうでしょうか? あるとすればそれくらいでしょうか? 自分で故意にやったわけではなく、自分も被害者なのでそれによって何十万も賠償請求をされることはないでしょうか? 損害賠償請求をされるのが怖いので、ツイッターとfacebookのapiを使った認証を導入することにより、 IDもPWを自分のDBに入れない事で最悪不正アクセスや改ざんウイルス問題が発生しても、 個人情報漏れの問題は起きないようにします。 そうすればあるとしてもウイルス感染のみと考えてよいでしょうか? その危険性まで考えるとフロントだけのポートフォリオサイトを公開している、 フロントやデザイナーもリスクは同じですよね? コジンブロガーもそうでしょうか? 唯一の違いは、inputなどに閲覧者が情報を入力できる欄ですが、 ここに関しては、受け取ったphpがまず初めにhtmlcharactorsでエスケープしてやれば問題は起きないでしょうか? そしてこの情報をDBに入れないと投稿情報をWEBページ上に追加できないのでしょうが、 これはWAF対応をしているロリポップやドメインキングなどであれば、mysqlの問題は これだけで十分と考えてよいでしょうか? 最後にWEBサービスのセキュリティ診断はココナラなどで値段3000円くらいでやってくれるようですが、 このような所に依頼したほうがいいのでしょうか?

    • ベストアンサー
    • PHP
  • 可変の検索条件件数でAccessデータを抽出

    http://okwave.jp/qa/q8790348.html ここで質問をさせて頂いたのですが 私の質問方法が下手で、違う意味合いになっていましたので再度投稿させてください。 ■ やりたい事 ADOを用いて、Accessのテーブル内のフィールドに「指定の数値」がある場合 その行を全てExcelに抽出したい ■ 特徴 「指定の数値」は複数あり、なおかつ可変。  → VBAで作成したコンボボックス(Accessから読込)にて選択し、F45から下に好きな個数だけ追加 ■ つまづき点 「指定の数値」全てを検索対象に(OR検索)して SQLのSelect文で取得しようとしてもやり方が分からない ■ 現在のコード '宣言 Private adoCn As Object Private adoRs As Object Private strSQL As String Private Const DBpath = "\Access.mde" Sub DBconnect(flg As Boolean) 'DB呼出 Set adoCn = CreateObject("ADODB.Connection") If flg = True Then Set adoRs = CreateObject("ADODB.Recordset") adoCn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & DBpath & ";" End Sub Sub 対象() Dim tmpFldCnt As Variant Dim tmpRecCnt As Integer Dim buf() As Variant Call DBconnect(True) m = Worksheets("選択").Range("B47") Dim i As Long Dim j As Long i = 45 j = 44 + Worksheets("選択").Range("B47") 'B47:コンボボックスで選んだ個数分の数値 On Error GoTo err_hander adoCn.BeginTrans 'トランザクション処理開始 strSQL = _ "select * from TBL where コード = [選択$F" & i & ":F" & j & "]" 'F45より下に取得した値が入っていく adoRs.Open strSQL, adoCn, adOpenKeyset 'SQLを実行して、対象をadoRsへ tmpFldCnt = adoRs.Fields.Count tmpRecCnt = adoRs.RecordCount Range("M28:DG31").ClearContents ReDim buf(tmpFldCnt - 1, tmpRecCnt - 1) buf = adoRs.GetRows Range(Cells(28, 13), Cells(28 + tmpFldCnt - 1, 13 + tmpRecCnt - 1)) = buf adoCn.CommitTrans 'トランザクション終了 Call DBcut_off(True) 'DB切断呼び出し Exit Sub 色々と調べてみたものの、解決する気配がせず、どなたか知恵をお貸しください。

    • fwod
    • 回答数1
  • Web上で文字位置の微調整を行い印刷したい

    ◆質問詳細 --------------------------------------------------------------   Webシステムに下記のような機能の組み込みを検討しています。    <やりたいこと>     ・あらかじめデザインが印刷された紙(以降 デザイン用紙とする)に対し、      Webシステムから必要な情報(宛名など)を印字し、プリントアウトさせる      ※デザイン用紙は画像としても保存しておく    <懸念点>     ・デザイン用紙のデザインにより情報を印字する箇所が違うため、プレ      ビュー等で印字箇所を微調整する必要がある。      ※プレビュー時は背景にデザイン用紙の画像を表示させる必要がある   単純に決められた位置に情報を印字して出力させる場合はCrystal Reports等で問題ないかと   思いますが、出力する情報の印字位置を毎回微調整しなければならずどんなツールがよいか   探しております。 ◆ご教授希望内容 --------------------------------------------------------------   上記のように印刷前に文言の印字位置を微調整できたり、プレビュー時の背景画像を変えれ   たりといった柔軟なことができるツールや方法につきまして何かご教授頂けたらと思い質問を   させて頂きました。 ◆その他補足 --------------------------------------------------------------   ちなみに印刷時は下記の流れで検討しております。    [※印刷枚数が1000枚程度とした場合]      1.印刷前のプレビュー等で印字位置の微調整      2.微調整した状態で何件か確認      3.問題がなければ全枚数の印刷開始   開発環境は下記で行う予定です。   <開発環境>    ・開発PC OS:Windows 7 Pro 64 bit    ・開発ツール:Visual Studio 2008 Pro    ・DB:SQL Server 2008 Express   <Webシステム導入予定サーバ>    ・OS:Windows Server 2008 R2(おそらく)    ・DB:SQL Server 2008 Standard(おそらく) 説明足らずな箇所もあるかも知れませんが、よろしくお願い致します。

    • ryo085
    • 回答数2
  • PHPの文字化けについて(2)

    いつもお世話になってます。 以前、以下の質問をさせて頂いた者です。 http://okwave.jp/qa/q7743818.html 以前とは異なった形で再度文字化けの問題が発生しており、 何か解決するための情報がありましたらご提供頂けませんでしょうか。 ------------------------- PHPで、テキストボックスと登録ボタンを配置した簡単な入力フォームを作成しました。 そこでテキストボックスに「章」と言う文字を入力し登録をすると、 DB側には「・ス・ス」と文字化けがなされて登録されます。 しかしながら上記の内容は、教授のPCでしか発生せず、 私のPCでは発生しない問題であるため原因の特定が難しく困っております。 PC自体は同じモノを使用しているため、 使っているブラウザの違いから本問題が発生しているのでは?と考えました。 教授はChrome(最新版)、私はIE又はFF(最新版)を使用しています。 ところが試に自PCへChrome(最新版)を入れ確認をしてみた所、 無事「章」という文字が登録されたため、未だに私の環境では発生しません。 次にPHPのソースに問題があるのではないかと考えました。 入力された文字列は1つの事を除き、そのままDBへ登録しています。 やっていることは、「前後にスペースが入っていれば取り除く」と言う事です。 以下、ソースになります。 ---- function alltrim($str){ $str = preg_replace('/^[[:space:]]+/', "", $str); $str = preg_replace('/[[:space:]]+$/', "", $str); return $str; } ---- 何かおかしな点等ありますでしょうか? 他に調べたほうがよい事柄がありましたら 情報のご提供宜しくお願い致します。

    • 締切済み
    • PHP
  • SQLサーバーから抽出したデータの並び替え

    SQLサーバーから抽出したデータの並び替え(降順)をVBAを使って行おうとしてます。 以下にマクロ詳細を示します。 ---------------------------------------------------   Worksheets("Sheet1").Range("A4:HT20").ClearContents Worksheets("Sheet2").Range("D4") = "" Worksheets("Sheet2").Range("D5") = "" Worksheets("Sheet2").Range("D6") = "" Worksheets("Sheet2").Range("D8") = "" Worksheets("Sheet2").Range("D10") = "" Worksheets("Sheet2").Range("D12") = "" Worksheets("Sheet2").Range("E16") = "" Worksheets("Sheet2").Range("E18") = "" 'Table1に最新の規格値を表示させる Dim CN As Connection 'Connectionオブジェクト Dim rs As Recordset 'Recordsetオブジェクト Dim SelCmd As String 'データを抽出するSQLステートメント 'DBに接続 Set CN = New Connection CN.ConnectionString = "Driver={SQL Server};" & _ "server=○○○.○○.○○.○○; database=DB ; uid=ID; pwd=1234;" CN.Open 'Lotの入力 Dim MLot As String MLot = InputBox("Lotを入力 例 12AB") Sheets("Sheet1").Range("B1") = MLot SelCmd = "SELECT * FROM PD " _ & "WHERE Lot = '" & Sheets("Sheet1").Range("B1").Value & "'" 'データを取得 Set rs = New Recordset rs.Open SelCmd, CN 'シートに貼り付け Sheets("Sheet1").Range("A4").CopyFromRecordset rs '後処理 rs.Close Set rs = Nothing CN.Close Set CN = Nothing ☆☆☆   'データを降順に並び替え   Sheets("Sheet1").Select →  Range("A3:HT20").Sort Key1:=Range("D4"), Order1:=xlDescending, header:=xlGuess ☆☆☆ -------------------------------------------------------- 実行時エラー’1004’ RangeクラスのSortメソッドが失敗しました。とエラーメッセージが出て、 →の部分が黄色く表示されてデバックモードになってしまいます。 新しいエクセルBookで新規で開いて、データを貼り付け☆☆☆に挟まれた部分だけを、 マクロではしらせてみると、無事にデータを降順に並べ替えてくれました。 なぜか、目的とするエクセルファイル内のマクロに取り入れるとエラーが出るのかが わかりません。 解決方法が分かる方いらっしゃいましたら、教えて下さい。 宜しくお願い致します。

  • 各部署、各チーム、個人ごとの売り上げ管理について

    現在、各部署、各チーム、個人ごとの売り上げを管理するDBの製作を行っております。 Microsoft Accessです。 テーブルは、 T_取引先 ・取引先ID ・取引先情報 ・担当ID(個人) T_個人 ・担当ID ・個人名 ・チームID T_チーム ・チームID ・チーム名 ・部署ID T_部署 ・部署ID ・部署名 T_注文履歴 ・履歴ID ・日時 ・取引先ID ・商品番号 ・個数 個人が複数のチームや部署に所属することはありません。 部署 < チーム < 個人 のピラミッドとなっております。 これで月初に、先月の売り上げを以下のようにプリントアウトを したいと思っております。 ============================================= 部署名1 売り上げ額 件数 ============================================= チーム名1(上記部署に所属するチーム) 売り上げ金額 件数 --------------------------------------------- 個人名1(上記チームに所属する各個人) 売り上げ金額 件数 個人名2 売り上げ金額 件数 個人名3 売り上げ金額 件数 --------------------------------------------- チーム名2 売り上げ金額 件数 --------------------------------------------- 個人名4 売り上げ金額 件数 個人名5 売り上げ金額 件数 個人名6 売り上げ金額 件数 個人名7 売り上げ金額 件数 --------------------------------------------- チーム名3 売り上げ金額 件数 --------------------------------------------- 個人名8 売り上げ金額 件数 個人名9 売り上げ金額 件数 個人名10 売り上げ金額 件数 ============================================= 部署名2 売り上げ額 件数 ============================================= チーム名4 売り上げ金額 件数 --------------------------------------------- 個人名11 売り上げ金額 件数 個人名12 売り上げ金額 件数 個人名13 売り上げ金額 件数     ・     ・     ・ こういうことは可能でしょうか? できれば、売り上げの多い部署順や、部署の中でも売り上げの 多いチーム順など変更が出来ればベストです。 また、このようなものを作る際に気をつける点はありますでしょうか? 今まで、顧客DBなどを作成し、様々な条件に対して絞込み などをしたリストを最終的に印字して郵送するなどのものは 作ってきましたが、このような複雑な出力をしたことがなく 迷っております。 まだ、漠然としているかもしれませんがよろしくお願いいたしします。

  • mysql limitページ分割

    前の人が質問したのを参考にしてつくったのですがうまくいかず困っています 検索結果を10件ずつ表示して googleみたいに 1l 2l 3 みたいな感じやりたいです <html> <body> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; $sql = "limit" . $page_num*10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)){ $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td> </tr>"; //検索条件に該当する全データの件数取得 $sql = "select count(*) from tbl_test " ; $sql = "where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page_num + 1, "ページ目を表示<br>" ; //前の10件 if ($page_num != 0) { echo "<a href = find.php?name=",$name, ", $page_num -1.">" ; echo "&lt 前の10件"; } //次の10件 if (($page_num + 1)*10 < $cnt) { echo "<a href = find.php?name=",$name, ", $page_num +1.">" ; echo " 次の10件 &g</a>t" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </body> </html> Parse error: syntax error, unexpected '前の10件' (T_STRING), expecting ',' or ';' というエラーが出て自分なりにバグを消しているのですがまだエラーが消えずに困っています

    • ベストアンサー
    • MySQL
    • noname#197690
    • 回答数2