7月1日の業務報告

こんばんは、M2の水上です。

本日は知識情報演習Iの質問が12件ありました。
=======================
<知識情報演習I>
Q1. CGIプログラムでフォントの色を変えるためにprint文をつかって色を変えるHTMLのタグを出力してみたがInternal server errorになる
A1. print(“<font color=”red”>¥n”)とあり、色を表すredが変数として認識されエラーになっていました。プログラム中で同じように文字列にダブルクオートを含む行があったので、そこと同じように記述してみてはどうかと伝えました。

Q2. 部分検索をしたいがエラーがでてどうしたらいいかわからない
A2. %を使っていたので、エラーがでないようにするにはどうしたらいいか一緒に考えました。

Q3. 書誌データを読み込んでデータベースに格納できる形式のテキストファイルを出力するプログラムで、読み込むデータにISBNが2行ある場合にどうすればよいかわからない。
A3. 1行読み込むごとにprintメソッドで表示をすると、2行にわたって書かれていることが予想される場合に操作が複雑になるのでどうにかしてレコード1つ分をまとめて表示

Q4. 検索をしようとしたらエラーが出て、ログファイルを見たのだがどこが本当のエラーメッセージなのかわからない。
A4. require(“sqlite3”)などと使っている場合は別のファイルを読み込んでいることで、エラーが起こった時に自分が作っていないファイルの名前や行数をメッセージに含むことがあるので、自分が作ったファイルの名前があればそこが今必要なエラーメッセージだと伝えました。メッセージを見るとprintfメソッドが原因のようでしたが、printfメソッドについてよくわかっていないまま使っていたのでこのメソッドについて調べてみて、形式を指定する部分を見直してみるよう伝えました。

Q5. .htaccessの設定がうまくできていないのかうまくアクセスできない
A5. .htaccessファイルを実際に開いてみると不要な記述があったので削除したところ正しくアクセスできました。

Q6. 出力をブラウザで見たときに色が変わるようにしたいがうまくいかない。
A6. ダブルクォーテーションが正しく表示できていないことが原因でした。そのまま表示したい場合は「文字列の初めと終わりを表すもの」ではなく表示するものだと特別に指示してやる必要があると伝えました。

Q7. タイトルと著者の両方を検索したいがうまくいかない
A7. executeメソッドで検索式を指定するときに変数の中身を使ってほしい場合は検索式で?を書いてそのあとで変数の名前を書きますが、?が2つ以上になる場合は変数の名前も?の数と同じだけ必要になることを伝えました。それで実行したところうまくいきました。

Q8. データベースにデータを格納しようとしたところカラムの数があわないというエラーが出る。
A8. テーブルを作る際にテキストに書かれていたそのまま作っており、カラムが二つしかできていませんでした。レポートのためには自分で何を格納するか考えてカラムの数を増やさなくてはならないので、何を増やすべきか考えてテーブルを作りなおしてみるよう伝えました。

Q9. OPACが正しく検索できない。
A9. エラーメッセージを確認したところ指定された名前のテーブルがないということでした。確認するとホームフォルダーでデータベースの更新をしておりkirlフォルダのデータベースファイルには正しく格納できていなかったのでファイルをコピーしてkirlフォルダにおいたところ正しく検索できました。

Q10. 出力をブラウザで見たときに色が変わるようにしたいがうまくいかない。
A10. 実行するプログラムのファイル名を、検索語を入力するページのHTMLの記述で間違っていたので更新が反映されていませんでした。正しいファイルを実行して不要なコンマが入力されているエラーを取り除いたところ正しく色を変えることができました。

Q11. OPACのCGIプログラムを動作させると、ブラウザ上ではきちんと検索の動作をするのに、オフラインモードで動作確認をすると検索されない。
A11. オフラインモードで動作確認をする際、フィールド名とそのフィールドの指定されているべき値を「=」でつなぐ際、前後にスペースを入れているのが原因でした。

Q12. 演習4-7を何箇所か変更してOPACを作成しているが、CGIプログラムが上手く動作しない。
A12. printfは決められたフォーマットで文字列を出力するメソッドであるため、フォーマットを正しく指定する必要があります。このフォーマット指定が違った指定になっていたため、指摘しました。またCGI.escapeメソッドを使う際に引数のrow[]内の数値が違っていたことが原因でした。

回答 Q1-Q2:野沢、Q3-Q10:岩井、Q11-Q12:水上
=======================

今日で春B学期も終わりで、明日から春C学期がはじまります。
そうはいってもまだ春B学期のレポートが残っている方も多いと思います。
少し慌ただしいですが、春B学期のレポートも、新しくはじまる春C学期の授業も
両方しっかり取り組めると良いですね。

(文責:水上)