15. september 2000 - 20:25Der er
15 kommentarer og 1 løsning
ODBC via DSN
Hvordan får jeg mit vb5 program til at lave ændringer i en database via en dsn fil. Jeg vil gerne have konkrette vb-eksempler eller objekter jeg kan bruge til dette. Men uanset hvad, så skal jeg bruge en dsn-fil til dette.
Connect Property Example: DSN Connection Using Establish Connection The following example establishes an ODBC connection using a registered DSN to provide most of the required arguments. The User ID and Password are to be provided by domain-managed security. In this case the example prints the resulting Connect property to the Immediate window.
Dim cn As New rdoConnection Dim qd As New rdoQuery
Den siger bare: \"User-Defined type not defined\". Og hvor står der dsn-filens navn henne ? Har du ikke et lidt mere omfattende eksempel med nogle forklaringer ?
How to profile driver performance data (ODBC) To log driver performance data using ODBC Administrator
In Control Panel, double-click 32-bit ODBC. Click the User DSN, System DSN, or File DSN tab. Click the data source for which to log performance. Click Configure. Navigate the Microsoft SQL Server Configure DSN Wizard to the page with Log ODBC driver statistics to the log file. Select Log ODBC driver statistics to the log file. In the box, place the name of the file where the statistics should be logged. Optionally, click Browse to browse the file system for the statistics log. To log driver performance data programmatically
Call SQLSetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA_LOG and vParam set to the full path and file name of the performance data log file. For example: \"C:\\\\Odbcperf.log\"
Call SQLSetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA and vParam set to SQL_PERF_START to start logging performance data. Optionally, call SQLSetConnectAttr with fOption set to SQL_COPT_SS_LOG_NOW and vParam set to NULL to write a tab-delimited record of performance data to the performance data log file. This can be done multiple times as the application runs. Call SQLSetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA and vParam set to SQL_PERF_STOP to stop logging performance data. To pull driver performance data into an application
Call SQLSetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA and vParam set to SQL_PERF_START to start profiling performance data. Call SQLGetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA and pvParam set to the address of a pointer to a SQLPERF structure. The first such call sets the pointer to the address of a valid SQLPERF structure that contains current performance data. The driver does not continually refresh the data in the performance structure. The application must repeat the call to SQLGetConnectAttr anytime it needs to refresh the structure with more current performance data. Call SQLSetConnectAttr with fOption set to SQL_COPT_SS_PERF_DATA and vParam set to SQL_PERF_STOP to stop logging performance data. The SQLPERF structure is defined in Odbcss.h as follows:
typedef struct sqlperf
{
// Application profile statistics
DWORD TimerResolution;
DWORD SQLidu;
DWORD SQLiduRows;
DWORD SQLSelects;
DWORD SQLSelectRows;
DWORD Transactions;
DWORD SQLPrepares;
DWORD ExecDirects;
DWORD SQLExecutes;
DWORD CursorOpens;
DWORD CursorSize;
DWORD CursorUsed;
LDOUBLE PercentCursorUsed;
LDOUBLE AvgFetchTime;
LDOUBLE AvgCursorSize;
LDOUBLE AvgCursorUsed;
DWORD SQLFetchTime;
DWORD SQLFetchCount;
DWORD CurrentStmtCount;
DWORD MaxOpenStmt;
DWORD SumOpenStmt;
// Connection statistics
DWORD CurrentConnectionCount;
DWORD MaxConnectionsOpened;
DWORD SumConnectionsOpened;
DWORD SumConnectionTime;
LDOUBLE AvgTimeOpened;
// Network statistics
DWORD ServerRndTrips;
DWORD BuffersSent;
DWORD BuffersRec;
DWORD BytesSent;
DWORD BytesRec;
// Time statistics
DWORD msExecutionTime;
DWORD msNetworkServerTime;
} SQLPERF;
Examples This example shows both the creation of a performance data log file and displaying performance data directly from the SQLPERF data structure. Error-checking code was removed to simplify this example.
// Sample showing the SQL Server ODBC driver-specific options
// to record performance statistics. The sample creates
// one file:
//
// C:\\Odbcperf.log contains performance statistics and
// can be imported to a spreadsheet program such as Microsoft Excel
// as a tab-delimited file for analysis.
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <odbcss.h>
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;
int main() {
RETCODE retcode;
// Pointer to the ODBC driver performance structure.
Damm det har du ret i, kom til at kopiere det fra C/C++ manualen. Men på den addy jeg gav, kan du søge efter det og finde det til VB. metoderne er de samme.
Hvis ADO fungerer med VB5 kan du vælge at opdatere din database med connection eller via recordset.
1A.Opsætning af dsn: Control Panel->Odbc->System DSN->Add, lokaliser din database og giv forbindelsen et dsn navn, spring alle andre indstillinger over.
1B. (Access Database) eller udskift nedenstående Conn med dette:
strDSN = \"Provider=MSDASQL;\" & _ \"Driver={Microsoft Access Driver (*.mdb)};\" &; _ \"DBQ=...Stien til din database\" Conn.Open strDSN
2.VB Code (VB5/VB6)
Option Explicit Dim Conn As New ADODB.Connection Dim RS As New ADODB.Recordset Dim strConn as String
strConn = \"din dsn\" Conn.Open strConn \' eller strDSN
PSS. Du skal lige huske at tilføje en reference i dit projekt til \"Microsoft ActiveX Data Object Library\" hvis du vil bruge ADO(DB), ellers får du en userdefined error.
Jeg skal have vb-programmet til at bruge en .dsn fil til at åbne en database, og derved bruge de drivere der er specificeret i denne. Grunden til det er at, ham jeg skal lave programmet for vil bruge en mySQL database til at opbevare oplysningerne i. Og efter som jeg IKKE har mySQL, og ikke ved hvordan man bruger det, ville jeg teste programmet i en Acces database... Men det færdige program skal helst kunne acceptere enhver ODBC database, bare der er en .dsn fil der fortæller hvor den er, og hvilke drivere der skal bruges. Det må man da kunne gøre i vb5 ?
Du vil altså nærmest lave et API til enhver database i din VB applikation ? - med udgangspunkt i Access ??
God fornøjelse,...ærligt talt det kan vel ikke bare være et spørgsmål om at kunne få forbindelse til en vilkårlig database men også at udnytte den optimalt. Der er altså, trods ligheder, forskelligheder i funktionalitet og ydeevne at tænke på også.
Ham du skal lave det for ville jo nok foretrække at det du laver for ham fungerer optimalt til mySQL. Hvis han har brug for noget andet kan det jo være han kommer igen, hvis det du lavede fungerede tilfredsstillende.
Bemærk RDO er også Microsoft ligesom ADO (og VB).
Men hvis du gerne vil køre videre med ideen ville det være bedre om du lavede en komponent (DLL) for hver db-type som du kunne refere til i din applikation, men så skal du lige huske at lave et setup program til din ven...
Skal det du laver laves som en komponent (dll) og afvikles fra asp under IIS eller skal det køre fra en eller anden anden dødsyg linuxsnot php server ?
Programmet skal til slut køre med mySQL database, som nok bliver afviklet sammen med noget php... servertypen aner jeg ikke noget om, men programmet skal bare have fat i ODBC\'ens dsn-fil, så skulle den klare resten
Jeg lukker spørgsmålet da ingen kan komme med et acceptabelt svar
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.