#include <iostream>
#include <stdio.h>
#import "C:\Program Files\Fichiers communs\System\ado\msado15.dll" \
no_namespace rename("EOF","ADOEOF")
void main()
{
//initialise les variables
HRESULT hr;
CoInitialize(NULL);
try
{
//declare la connection
_ConnectionPtr connection;
hr = connection.CreateInstance(__uuidof(Connection));
//vérifie si réussite
if (FAILED(hr))
{
throw _com_error(hr);
}
//declare le recordset
_RecordsetPtr recordset;
hr = recordset.CreateInstance(__uuidof(Recordset));
//verifie si reussite
if (FAILED(hr))
{
throw _com_error(hr);
}
//établi la connection
connection->CursorLocation = adUseClient;
connection->Open("Provider=SQLNCLI;Server=NIVEAU2-03\\SQLEXPRESS;Database=BaseTest;Trusted_Connection=yes;", L"id",L"pwd", -1);
//ouvre le recordset: crée une table
recordset->Open("CREATE TABLE mytable (value NVARCHAR(255))",
connection.GetInterfacePtr(), adOpenForwardOnly,
adLockReadOnly, adCmdText);
//insere des éléments
recordset->Open("INSERT INTO mytable VALUES ('Hello')",
connection.GetInterfacePtr(), adOpenForwardOnly,
adLockReadOnly, adCmdText);
//insére un second
recordset->Open("INSERT INTO mytable VALUES ('Goodbye')",
connection.GetInterfacePtr(), adOpenForwardOnly,
adLockReadOnly, adCmdText);
//va chercher les éléments
recordset->Open("SELECT * from mytable",
connection.GetInterfacePtr(),
adOpenForwardOnly, adLockReadOnly,
adCmdText);
//les affichent
while(!recordset->ADOEOF)
{
_variant_t var;
var = recordset->Fields->GetItem(L"value")->GetValue();
std::cout << static_cast<char *>(_bstr_t(var.bstrVal))<< std::endl;
recordset->MoveNext();
};
//referme le recordset
recordset->Close();
//détruit la table
/*recordset->Open("DROP TABLE mytable", connection.GetInterfacePtr(),
adOpenForwardOnly, adLockReadOnly,
adCmdText);*/
}
catch(_com_error &e)
{
std::cout << "Impossible de se connecter au serveur distant";
}
catch(...)
{
std::cout << "planté";
};
}
Partager