A diferença entre conn.execute e rs.open é que o uso dos métodos conn.execute, rs.open e command.execute são muito diferentes.
Geralmente, para formar um conjunto de registros, você pode usar
Set rs=conn.execute (SQL).
ou diretamente
rs=CONN.execute(SQL)
e
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,CONN,0,1 ou rs.open SQL,CONN
Nesse caso, o desempenho da abertura costuma ser um pouco melhor que o anterior.
(O objeto de comando é mais flexível e possui um intervalo de execução mais amplo)
Usando CONN.execute, você pode executar diretamente o próximo conjunto rs=conn.execute(SQL) sem fechá-lo.
Mas o desempenho e a velocidade serão bastante reduzidos!!
É cerca de 2 a 5 vezes mais lento!! (eu pessoalmente testei isso no loop msSQL 1000 vezes, se você não acredita, teste você mesmo imediatamente), então antes de executar o próximo rs=conn.execute!! isso! É
uma boa ideia Hábito!
Ao usar o rs rs.open de um único objeto, antes de abrir o próximo conjunto de registros, o display deve ser fechado, caso contrário ocorrerá um erro. A velocidade é basicamente a mesma no caso de SQL, CONN, 0, 1,
então eu gosto. para usar um CreateObject(" adodb.recordser" (se não houver necessidade de intercalar vários conjuntos de registros, vários registros não serão um problema!)
Então use do começo ao fim!!!
.
O último conjunto rs = nada chega ao fim!
Ao abrir a caixa do tesouro, você poderá ver tudo na luz dourada!
Existem muitas situações em que você precisa usar open!
E conn.execute quer mudar o filme sob o pano preto~~~sneak~~muito
simples
!!!
rs.open SQL,conn,1,3
se rs(0)<0 então rs(0)=0
rs(1)=aaa
rs(2)=bbb
rs.update 'Atualiza o conjunto de registros e grava-o no banco de dados
rs.addnew 'Adiciona um novo registro
rs(0)=1
rs(1)=ddd
rs(2)=kkk
rs.atualização
o
ID do número automático do novo registro //Isso é muito comumente usado.
id rs.
rs1("id"=id
rs1(1)=...
..
rs1.update
rs1.close:set rs1=nada
rs.close:set rs=nada
Se CONN.execute for usado para a operação acima, quatro CONN.executes serão usados
CONN.execute("update .."
CONN.execute("inserir na tabela 1:"
rs=CONN.execute("selecione novo id automático"
CONN.execute("inserir na tabela 2"
Qual método é mais lógico e claro à primeira vista?
Também existe uma maneira interessante de usar o Recordset aberto para gravar!!
É um pouco confuso quando penso nisso.
Set rs=server.CreateObject("Adodb.recordset"
Definir rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.open SQL2, CONN
define dois objetos com o mesmo nome ao mesmo tempo para abrir dois conjuntos de registros, e eles estão disponíveis!
'Desde que os nomes das colunas sejam consistentes com os metadados nestes dois conjuntos de registros
'Então a operação está normal!!
Expanda
Definir rs=server.CreateObject("Adodb.recordset"
Definir rs=server.CreateObject("Adodb.recordset"
Definir rs=server.CreateObject("Adodb.recordset"
Definir rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.openSQL2,CONN
rs.open SQL3,CONN
rs.open SQL4, CONN,
que é maior que dois rs com o mesmo nome!!
Parece um pouco com uma consulta conjunta com SQL e depois abrir o conjunto de registros ~~~
Já usei assim antes!! Não deveria ser deslumbrante!!
===============
Quando usar o quê?
Isso é baseado apenas na minha experiência pessoal:
Se você precisar tocar no banco de dados apenas uma vez, use execute
Se você deseja realizar operações complexas no banco de dados, é melhor usar rs.open