VB.Netで PostgreSql Ver.12(ローカル環境)を使用し開発しましたが,ホストは、Ver.11で
Ver.12特有のSql文等は一切使用しておらず、単純なSQL文でもエラーになります。
下記、
「If Me.reader.HasRows = False Then」でデータが存在しても、Ver.11(ホスト)では、
エラーとなり、Ver.12(ローカル環境)であれば、問題なく動きます。
QA1.
PostgreSql Ver.12(ローカル環境)で開発後、Ver.11(ホスト)に接続する場合は、何かconfig等で
設定が必要でしょうか?
QA2.
PostgreSql Ver.12(ローカル環境)で開発後、Ver.11(ホスト)に接続することが無理でしょうか?
QA3.
「If Me.reader.HasRows = False Then」でデータが存在しても、Folseとなりますが
原因を特定する方法はあるでしょうか?
以上ご教授お願いします。
例)
'各フォルダーを取得。
If Me.DB_Open() Then ' データベースのオープン
strSQL = "SELECT folderkbn,iofolder,hjun FROM mfolder"
Me.reader = Me.cmd.ExecuteReader()
If Me.reader.HasRows = False Then '<--ここでFalseになります。
'レコード数
MessageBox.Show("フォルダー設定マスタエラー。", "エラー確認", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Function
Else
Do While Me.reader.Read()
Select Case reader("folderkbn").ToString.Trim
Case "BkUp"
GblBkUp = reader("iofolder").ToString.Trim
Case "IN"
GblIN = reader("iofolder").ToString.Trim
Case "ORG"
GblORG = reader("iofolder").ToString.Trim
Case "OUT"
GblOut = reader("iofolder").ToString.Trim
Case "TemPlate"
GblTemplate = reader("iofolder").ToString.Trim
End Select
Loop
End If
'データベースを切断
Me.Close()
Else
'データベースを切断
Me.Close()
End If
No.2ベストアンサー
- 回答日時:
> エラー内容は、42p01 です。
重要な手掛りがあるじゃないですか。
42P01 で検索かけると、沢山見つかります。
・テーブル名が大文字小文字混在するとき、"でかこまないといけない
→今回は非該当?
・スキーマ名がpublicで無い場合、テーブル名だけでは見つからないことがある
→要確認
接続文字列での接続と、psqlを使った接続とで、何か不対応があるのかもしれません。
No.1
- 回答日時:
「エラー」とは何のことを言っているのですか?
> 「If Me.reader.HasRows = False Then」でデータが存在しても、Ver.11(ホスト)では、
> エラーとなり、Ver.12(ローカル環境)であれば、問題なく動きます。
とありますが、具体的にどうやって「データが存在する」と確認したのですか?
> If Me.DB_Open() Then ' データベースのオープン
もDB_Openでは具体的に何をやっているのですか?
このプログラムは何を使っているのですか?
Visual Basic と Npgsql を使っているように見えますが、あってますか?
あっているのならバージョンはどうなっていますか?
今の情報では、そもそもPostgreSQLサーバをOpenできているかどうかさえもはっきりしません。
他のソフト等で確認はできていますか?
> strSQL = "SELECT folderkbn,iofolder,hjun FROM mfolder"
とありますが、これがcmd.CommandTextに設定されている様子がありません。
これとは違うSQLをExecuteReaderしている可能性があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) chromedriverのver-upで動作不安定となった 3 2022/07/07 11:32
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- Visual Basic(VBA) エクセル VBAについて 2 2022/05/16 16:33
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2010 accdbのエラー「ODB...
-
SQLネットワークエラー時の再接続
-
SQL Server 2005 Expressでbcp...
-
SQLServerへのOpen命令でのエラー
-
SQL ServerにTCP/IPで接続出来ない
-
Oracle 8i コンマ(,)を含むデ...
-
SQLサーバー接続 特定のPCがWin...
-
SQL Loaderを使いたい
-
GROUP BYでエラーが発生
-
既定のインスタンスと名前付き...
-
ストアドの速度がクエリの30...
-
新規saの作成方法について
-
PostgreSqlでFunctionの作成に...
-
symfowareへのODBC接続方法
-
下記の問合せを行うクエリを、P...
-
ユーザー定義関数内でのsp_exec...
-
エクセルマクロで指定範囲内の...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
SQLServerの接続が突然できなく...
-
SQLのエラー(~付近に不適切な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2010 accdbのエラー「ODB...
-
SQL ServerにTCP/IPで接続出来ない
-
SQLServerへのOpen命令でのエラー
-
SQLネットワークエラー時の再接続
-
DAOでのOpenRecordsetの方法
-
SQL Server 2005 Expressでbcp...
-
SQLサーバー接続について
-
DBへの登録エラー?
-
アーカイブログをネットワーク...
-
SQL Server 2008のsqlcmdコマン...
-
PostgreSQLと、AccessをODBC接続
-
osqlでデータベースにアクセス...
-
一般的なネットワークエラーに...
-
Sybaseのエラー
-
SQLサーバに接続できません
-
ODBCによるエラー
-
JDBCの接続
-
ODBC 一般ネットワークエラー
-
ASP経由でのODBCの接続について
-
ODBC 一般ネットワークエラー
おすすめ情報
ご指摘ありがとうございます。
「データが存在」確認は、
⇒コマンドプロンプト画面で、
postgres=# \d
postgres=# select * from mfolder;
です。
⇒ VB.netは、2017、 Npgsqlは、4.1.1を使用です。
If Me.DB_Open() Then ' は?
⇒ conn = New NpgsqlConnection(String.Format("Server={0};Port=5432;User Id={1};Password={2};Database={3};", sHt, sU, sP, sD))
conn.Open()
cmd = conn.CreateCommand
です。(正常動作)
cmd.CommandTextなし
⇒ ご指摘通りで 追加しました。
エラー内容は、42p01 です。
42P01 で検索すると、殆どが大文字小文字の問題ですが、Create文をやり直し全て小文字にしても
同様でした。
スキーマ名はpublicです。
接続文字列での接続と、psqlを使った接続の可能性かと思います。