2016-08-02 5 views
1

私はPHP-MySQLコードにASP-ADOコードを変換しようとしていますし、私は次の変換するには、コードブロックを次ていますADO:カーソル。とのLockType

Function FindBankName(bankNo) 

    If IsNull(bankNo) Or IsNumeric(bankNo) = False Then Exit Function 
    Dim recordSet 

    Set recordSet = Server.CreateObject("Adodb.Recordset") 
    recordSet.Open "SELECT Id, MainPos FROM bank WHERE MainPos = "& bankNo &"", db, 1, 3 
    If Not recordSet.EOF Then 
     FindBankName = recordSet("Id") 
    End If 
    recordSet.Close 
    Set recordSet = Nothing 

End Function 

最終二つのパラメータ、1と3、Open機能があります

オプション

カーソル。:などのMicrosoftのドキュメントで定義されています。プロバイダがRecordsetを開くときに使用するカーソルのタイプを決定するCursorTypeEnum値。デフォルト値はadOpenForwardOnlyです。

ロックタイプ

オプション。プロバイダがRecordsetを開くときに使用するロックの種類(同時実行性)を決定するLockTypeEnum値。デフォルト値はadLockReadOnlyです。

対応するMySQLiに対応するオプションはありますか?私はどのように進めるべきですか?私はそれらを無視することはできますか?

答えて

1

カーソルタイプ1はadOpenKeysetです。つまり、レコードセット内のすべてのタイプの移動が許可され、変更が表示されますが、他のユーザーによる追加は見えません。言い換えれば、コードが最初のレコードのIDを取得するだけのレコードセットでは、それは少し残忍です。 LockType 3はadLockOptimisticです。つまり、レコードは更新時にのみロックされます。もう一度、何も更新していないレコードセットの場合は、必要以上のものです。

しかし、我々はすべて、ほとんどの目的のために機能するカーソル型とロック型になりがちです(あるいは、rs.Open以外のメソッドに移動する可能性があります)。一方で2つの列を返すクエリあなたが使っているものは本当に違いはありません。

要点は、読んだり、更新したり、追加したり、削除したりといった、必要な操作を実行できるようにMySQLクエリを設定できる限り、ADOが使用する特定のパラメータを安全に無視することができます。

関連する問題