2

このリンクからストアドプロシージャジェネレータテンプレートをダウンロードしました。

http://www.mygenerationsoftware.com/TemplateLibrary/Template/?id=10998336-5037-496c-a163-050060de065a

基本的に、スキーマを読み取ることにより、Insert、Update、Delete、Select、およびLoadByPrimaryKeyストアドプロシージャを生成します。

ただし、実行すると機能しません。この行でエラーが発生します:

For Each objColumn In objTable.PrimaryKeys

そして、私が得るエラーは次のとおりです。

オブジェクトはこのプロパティまたはメソッドをサポートしていません

誰かがこの問題に直面しましたか?これを解決するにはどうすればよいですか?

4

3 に答える 3

4

テンプレートコードは列挙を実行していません。これがMyGenerationの問題なのかVBScriptの問題なのかわからない。いずれにせよ、テンプレートでは次のようなコードを変更します。

For each objColumn In objTable.PrimaryKeys

への変更:

For j=0 to objTable.PrimaryKeys.Count - 1
    Set objColumn = objTable.PrimaryKeys(j)

次のようなコードのインスタンスもあります。

For each objColumn In objTable.Columns

への変更:

For j=0 to objTable.Columns.Count - 1
    Set objColumn = objTable.Columns(j)

これは私にとってはうまくいきました(Windows 7、.Net 4.0、SQL Server 2008 R2、MyGeneration 1.3.1.1)。

于 2012-09-24T19:31:48.953 に答える
0

試してみましたが、正しく動作しています (mygeneration 1.3.9)。テーブルには主キーがありますか? ストアドプロシージャを生成するには、「dodad」で必要だと思います。

すべてのテンプレートが機能しない場合は、myGeneration を再インストールします (これは私に起こりました)。

于 2012-04-26T16:56:14.483 に答える
0

Windows 7 以降の vbScript は、テンプレート スクリプトを Microsoft / VB Script から .NET に変更すると、MyGeneration でこの問題を引き起こします。

コードで機能し、すべての foreach を変更するよりも高速になる場合があります。ここでは C# を使用していますが、VB.NET はコード形式が VBScript と非常に似ているため、テンプレート構成ハンドルをクリックしてテンプレート言語を .NET スクリプトに変更する以外は変更しなくても動作する可能性があります。

これを行った後、テンプレートの名前と GUID を変更します (NEWGUID を押します)。GUID は一意の識別子です。作業内容を知りたい場合は、両方を変更する必要があります。

于 2015-02-12T16:38:36.000 に答える