by マティ » 2005年12月16日(金) 09:19
クラス内のPublicで宣言したデータをAPIに渡すようにプログラムを組むと、コンパイル時に「
"変数名" 無効な識別子です」でコンパイルできません。
クラス内で変数を宣言するサンプル [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード: 全て選択
'******************************************************************************
Class DBRecordSet_0000
Inherits DBRecordSet
Public
Dim JUMINCD As DWord
Dim KARA As Word
Dim MADE As Word
Dim SEX As Word
Dim FAMILY As DWord
Dim KANA[60+1] As Byte
Dim NAME[80+1] As Byte
Dim YUBIN As DWord
Dim ADR1[80+1] As Byte
Dim ADR2[60+1] As Byte
Dim TEL[29] As Byte
Dim BIRTHDAY As DWord
Sub RecOpen_0000(psSqlStr As String, pDbCn As *DBConnection)
Dim xTest As Long
RecOpen(psSqlStr,pDbCn) '元クラスを呼び出す
'---------------------------------------------
' データ受取領域の設定
'---------------------------------------------
'(説明) SQLBindCol( ハンドル, データの順番,データ型 ,受取データ ,列バイト, 戻バイト)
SQLBindCol( hstmt, 1, SQL_C_LONG , JUMINCD , 0, xTest )
SQLBindCol( hstmt, 2, SQL_C_SHORT, KARA , 0, xTest )
SQLBindCol( hstmt, 3, SQL_C_SHORT, MADE , 0, xTest )
SQLBindCol( hstmt, 4, SQL_C_SHORT, SEX , 0, xTest )
SQLBindCol( hstmt, 5, SQL_C_LONG , FAMILY , 0, xTest )
SQLBindCol( hstmt, 6, SQL_C_CHAR , KANA , 61, xTest )
SQLBindCol( hstmt, 7, SQL_C_CHAR , NAME , 81, xTest )
SQLBindCol( hstmt, 8, SQL_C_LONG , YUBIN , 0, xTest )
SQLBindCol( hstmt, 9, SQL_C_CHAR , ADR1 , 81, xTest )
SQLBindCol( hstmt,10, SQL_C_CHAR , ADR2 , 61, xTest )
SQLBindCol( hstmt,11, SQL_C_CHAR , TEL , 29, xTest )
SQLBindCol( hstmt,12, SQL_C_LONG , BIRTHDAY, 0, xTest )
'
MoveFirst()
End Sub
End Class
グローバル変数として宣言するとコンパイル&実行は出来るのですが、汎用性がなくなるので困っています。
グローバル変数として宣言するサンプル [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード: 全て選択
'******************************************************************************
Dim JUMINCD As DWord
Dim KARA As Word
Dim MADE As Word
Dim SEX As Word
Dim FAMILY As DWord
Dim KANA[60+1] As Byte
Dim NAME[80+1] As Byte
Dim YUBIN As DWord
Dim ADR1[80+1] As Byte
Dim ADR2[60+1] As Byte
Dim TEL[29] As Byte
Dim BIRTHDAY As DWord
'******************************************************************************
Class DBRecordSet_0000
Inherits DBRecordSet
Public
Sub RecOpen_0000(psSqlStr As String, pDbCn As *DBConnection)
Dim xTest As Long
RecOpen(psSqlStr,pDbCn) '元クラスを呼び出す
'---------------------------------------------
' データ受取領域の設定
'---------------------------------------------
'(説明) SQLBindCol( ハンドル, データの順番,データ型 ,受取データ ,列バイト, 戻バイト)
SQLBindCol( hstmt, 1, SQL_C_LONG , JUMINCD , 0, xTest )
SQLBindCol( hstmt, 2, SQL_C_SHORT, KARA , 0, xTest )
SQLBindCol( hstmt, 3, SQL_C_SHORT, MADE , 0, xTest )
SQLBindCol( hstmt, 4, SQL_C_SHORT, SEX , 0, xTest )
SQLBindCol( hstmt, 5, SQL_C_LONG , FAMILY , 0, xTest )
SQLBindCol( hstmt, 6, SQL_C_CHAR , KANA , 61, xTest )
SQLBindCol( hstmt, 7, SQL_C_CHAR , NAME , 81, xTest )
SQLBindCol( hstmt, 8, SQL_C_LONG , YUBIN , 0, xTest )
SQLBindCol( hstmt, 9, SQL_C_CHAR , ADR1 , 81, xTest )
SQLBindCol( hstmt,10, SQL_C_CHAR , ADR2 , 61, xTest )
SQLBindCol( hstmt,11, SQL_C_CHAR , TEL , 29, xTest )
SQLBindCol( hstmt,12, SQL_C_LONG , BIRTHDAY, 0, xTest )
'
MoveFirst()
End Sub
End Class
●ついでに
子クラスから親クラスの同一名称の処理を呼び出すには、どのようにコーディングすると良いでしょうか?どなたかお教えください。
親クラス->処理名では、うまく動かないです。
クラス内のPublicで宣言したデータをAPIに渡すようにプログラムを組むと、コンパイル時に「[b]"変数名" 無効な識別子です[/b]」でコンパイルできません。
[hide=クラス内で変数を宣言するサンプル]
[code]
'******************************************************************************
Class DBRecordSet_0000
Inherits DBRecordSet
Public
Dim JUMINCD As DWord
Dim KARA As Word
Dim MADE As Word
Dim SEX As Word
Dim FAMILY As DWord
Dim KANA[60+1] As Byte
Dim NAME[80+1] As Byte
Dim YUBIN As DWord
Dim ADR1[80+1] As Byte
Dim ADR2[60+1] As Byte
Dim TEL[29] As Byte
Dim BIRTHDAY As DWord
Sub RecOpen_0000(psSqlStr As String, pDbCn As *DBConnection)
Dim xTest As Long
RecOpen(psSqlStr,pDbCn) '元クラスを呼び出す
'---------------------------------------------
' データ受取領域の設定
'---------------------------------------------
'(説明) SQLBindCol( ハンドル, データの順番,データ型 ,受取データ ,列バイト, 戻バイト)
SQLBindCol( hstmt, 1, SQL_C_LONG , JUMINCD , 0, xTest )
SQLBindCol( hstmt, 2, SQL_C_SHORT, KARA , 0, xTest )
SQLBindCol( hstmt, 3, SQL_C_SHORT, MADE , 0, xTest )
SQLBindCol( hstmt, 4, SQL_C_SHORT, SEX , 0, xTest )
SQLBindCol( hstmt, 5, SQL_C_LONG , FAMILY , 0, xTest )
SQLBindCol( hstmt, 6, SQL_C_CHAR , KANA , 61, xTest )
SQLBindCol( hstmt, 7, SQL_C_CHAR , NAME , 81, xTest )
SQLBindCol( hstmt, 8, SQL_C_LONG , YUBIN , 0, xTest )
SQLBindCol( hstmt, 9, SQL_C_CHAR , ADR1 , 81, xTest )
SQLBindCol( hstmt,10, SQL_C_CHAR , ADR2 , 61, xTest )
SQLBindCol( hstmt,11, SQL_C_CHAR , TEL , 29, xTest )
SQLBindCol( hstmt,12, SQL_C_LONG , BIRTHDAY, 0, xTest )
'
MoveFirst()
End Sub
End Class
[/code]
[/hide]
グローバル変数として宣言するとコンパイル&実行は出来るのですが、汎用性がなくなるので困っています。
[hide=グローバル変数として宣言するサンプル]
[code]
'******************************************************************************
Dim JUMINCD As DWord
Dim KARA As Word
Dim MADE As Word
Dim SEX As Word
Dim FAMILY As DWord
Dim KANA[60+1] As Byte
Dim NAME[80+1] As Byte
Dim YUBIN As DWord
Dim ADR1[80+1] As Byte
Dim ADR2[60+1] As Byte
Dim TEL[29] As Byte
Dim BIRTHDAY As DWord
'******************************************************************************
Class DBRecordSet_0000
Inherits DBRecordSet
Public
Sub RecOpen_0000(psSqlStr As String, pDbCn As *DBConnection)
Dim xTest As Long
RecOpen(psSqlStr,pDbCn) '元クラスを呼び出す
'---------------------------------------------
' データ受取領域の設定
'---------------------------------------------
'(説明) SQLBindCol( ハンドル, データの順番,データ型 ,受取データ ,列バイト, 戻バイト)
SQLBindCol( hstmt, 1, SQL_C_LONG , JUMINCD , 0, xTest )
SQLBindCol( hstmt, 2, SQL_C_SHORT, KARA , 0, xTest )
SQLBindCol( hstmt, 3, SQL_C_SHORT, MADE , 0, xTest )
SQLBindCol( hstmt, 4, SQL_C_SHORT, SEX , 0, xTest )
SQLBindCol( hstmt, 5, SQL_C_LONG , FAMILY , 0, xTest )
SQLBindCol( hstmt, 6, SQL_C_CHAR , KANA , 61, xTest )
SQLBindCol( hstmt, 7, SQL_C_CHAR , NAME , 81, xTest )
SQLBindCol( hstmt, 8, SQL_C_LONG , YUBIN , 0, xTest )
SQLBindCol( hstmt, 9, SQL_C_CHAR , ADR1 , 81, xTest )
SQLBindCol( hstmt,10, SQL_C_CHAR , ADR2 , 61, xTest )
SQLBindCol( hstmt,11, SQL_C_CHAR , TEL , 29, xTest )
SQLBindCol( hstmt,12, SQL_C_LONG , BIRTHDAY, 0, xTest )
'
MoveFirst()
End Sub
End Class
[/code]
[/hide]
[b]●ついでに[/b]
子クラスから親クラスの同一名称の処理を呼び出すには、どのようにコーディングすると良いでしょうか?どなたかお教えください。
[b]親クラス->処理名[/b]では、うまく動かないです。