出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

更新可能なクエリーであることが必要です。エラーがでてしまう。   hiroさん [2002/03/29 16:02:56] [1932]
  Re:更新可能なクエリーであることが必要です。エラーがでてしまう。   北岳さん [2002/03/30 12:37:06] [1940]

[1932] 更新可能なクエリーであることが必要です。エラーがでてしまう。
投稿者:hiroさん 2002/03/29 16:02:56
Win2000Pro、IIS5の環境でASPでDB(Acess97)に接続するプログラムを書いているのですが、テーブルの表示はできるのですが、データベースの更新(テーブル新規作成)となると、「更新可能なクエリーであることが必要です」というエラーがでます。スクリプト、DBとも仮想ディレクトリにいれているのですが、
このディレクトリに何か権限を入れないとダメでしょうか?
今は、読み取り、書き込み、スクリプトおよび実行可能ファイルにチェックをいれています。ほかに何か設定することはありますか?


%
DbOpenName = "DSN=db" ' データベース名
DbOpenUser = "admin" ' データベースのユーザー名
DbOpenpass = ""    ' データベースのパスワード
'
'*-------------------------*'* テーブル作成の サンプル
Set db=Server.CreateObject("ADODB.Connection")
db.Open DbOpenName,DbOpenUser,DbOpenpass
CreateTable = "Create Table TabelName("
CreateTable = CreateTable & "kubun varchar(01) NOT NULL,"
CreateTable = CreateTable & "title varchar(50) NOT NULL,"
CreateTable = CreateTable & "mes memo NOT NULL)"
set rs1 = db.execute(CreateTable)
db.close
%>
</body></html>

[1940] Re:更新可能なクエリーであることが必要です。エラーがでてしまう。
投稿者:北岳さん 2002/03/30 12:37:06
既存DB内に、新たなテーブルをASPを使って動的に作る例ですか。
私はイントラでサーバのmdbをACCESSで直接いじれるので未経験でしたが、やってみました。
 
Set db=Server.CreateObject("ADODB.Connection")
の次に、
--------
db.Provider="Microsoft.Jet.OLEDB.4.0" '*
db.Open "d:\(フォルダ)\(ファイル名).mdb" '**
--------
と書いたら、既存の"d:\(フォルダ)\(ファイル名).mdb"に、新規の、TabelNameという名のテーブルができ、
kubun(サイズ 1 の文字列型)、title(同 50)、mes(メモ型) という名の3つのフィールドができました。
 
*の行を追加してみて下さい。
ODBC接続しているのでしたら、*のようにOLEDBへの切り替えをお勧めします。
(理由は、このサイトで「Re:ACCESSに直接接続したい」を検索してみて下さい。)
フォルダのパーミッションは(イントラなら)フルアクセスで問題ないと思います。
**の行はパラメータを簡略化しています。
 
ちなみに、同じASPをもう一度実行したら、(当たり前ですが)
Microsoft JET Database Engine エラー '80040e14'
テーブル 'TabelName' は既に存在しています。
が出ました。実際にはエラー回避も必要ですね。



TreeBBS For ASP V.0.1.3
Program By YasNet