Re: ODBC Library?

2015-10-31 Thread Charles via Digitalmars-d-learn

On Monday, 10 November 2014 at 20:37:51 UTC, Charles wrote:


For anyone in the future: I needed odbc32.lib, so I created the 
following odbc32.def and used implib.


Thanks me.

My computer I was using recently died, and ran into this problem 
again when getting everything set up. Is there any way to just 
fix this issue altogether?


Re: ODBC Library?

2014-11-10 Thread Charles via Digitalmars-d-learn

On Monday, 10 November 2014 at 18:13:58 UTC, Adam D. Ruppe wrote:

On Monday, 10 November 2014 at 17:57:21 UTC, Charles wrote:
It didn't compile, says, "mssql.d(12): Error: module sql is in 
file 'win32\sql.d' which cannot be read"


Oh, I forgot I used those. You can download the win32 folder 
from here 
https://github.com/AndrejMitrovic/DWinProgramming/tree/master/WindowsAPI


The Windows bindings that come with phobos are pathetically 
incomplete so a separate download or a bunch of copy/pasted 
declarations is needed for any serious windows api work.


Thanks for that.

For anyone in the future: I needed odbc32.lib, so I created the 
following odbc32.def and used implib.


LIBRARY odbc32
EXETYPE NT
SUBSYSTEM WINDOWS
EXPORTS
_SQLAllocEnv@4 = SQLAllocEnv
_SQLAllocConnect@8 = SQLAllocConnect
_SQLAllocHandle@12 = SQLAllocHandle
_SQLColAttribute@28 = SQLColAttribute
_SQLConnect@28 = SQLConnect
_SQLDisconnect@4 = SQLDisconnect
_SQLDescribeCol@36 = SQLDescribeCol
_SQLDriverConnect@32 = SQLDriverConnect
_SQLDrivers@32 = SQLDrivers
_SQLDataSources@32 = SQLDataSources
_SQLExecDirect@12 = SQLExecDirect
_SQLFetch@4 = SQLFetch
_SQLFreeConnect@4 = SQLFreeConnect
_SQLFreeHandle@8 = SQLFreeHandle
_SQLFreeEnv@4 = SQLFreeEnv
_SQLEndTran@12 = SQLEndTran
_SQLFreeStmt@8 = SQLFreeStmt
_SQLGetData@24 = SQLGetData
_SQLGetDiagField@28 = SQLGetDiagField
_SQLGetDiagRec@32 = SQLGetDiagRec
_SQLGetInfo@20 = SQLGetInfo
_SQLNumResultCols@8 = SQLNumResultCols
_SQLSetConnectOption@12 = SQLSetConnectOption
_SQLSetEnvAttr@16 = SQLSetEnvAttr
_SQLSetStmtOption@12 = SQLSetStmtOption

I've only tested it on a couple select statements and the 
fieldNames, but so far its working.


Re: ODBC Library?

2014-11-10 Thread Adam D. Ruppe via Digitalmars-d-learn

On Monday, 10 November 2014 at 17:57:21 UTC, Charles wrote:
It didn't compile, says, "mssql.d(12): Error: module sql is in 
file 'win32\sql.d' which cannot be read"


Oh, I forgot I used those. You can download the win32 folder from 
here 
https://github.com/AndrejMitrovic/DWinProgramming/tree/master/WindowsAPI


The Windows bindings that come with phobos are pathetically 
incomplete so a separate download or a bunch of copy/pasted 
declarations is needed for any serious windows api work.


Re: ODBC Library?

2014-11-10 Thread Charles via Digitalmars-d-learn

I kinda slapped one together but idk if it actually works.

https://github.com/adamdruppe/arsd

database.d and mssql.d from that repo. I haven't even tried to 
compile it for a while though, so it might not work at all.


The way I made it was to write the extern(C) function 
declarations and then call it like in C.


It didn't compile, says, "mssql.d(12): Error: module sql is in 
file 'win32\sql.d' which cannot be read" and then lists the 
import paths, of which none of them have the win32 directory. 
Database.d was able to compile though.


Assuming you're using ODBC on Windows, here's an old port of an 
even older C++ wrapper I used to use for ODBC work.  It 
includes an ODBC header and library, so should serve as a good 
basis for whatever you're trying to do.  If you're on Unix, you 
may have to update the ODBC header a bit.  I got partway 
through that project back in the day but never finished: 
http://invisibleduck.org/sean/tmp/sql.zip


I'll look into this, thanks for the example.


Re: ODBC Library?

2014-11-10 Thread Sean Kelly via Digitalmars-d-learn
Oh, here's a sample, since it doesn't look like that zip includes 
one:



import sql.Connection;
import sql.Exception;
import sql.ResultSet;
import sql.Statement;
import core.stdc.stdio;


pragma( lib, "odbc32.lib" );
pragma( lib, "sql.lib" );


void main()
{
try
{
auto conn = new Connection( "driver={SQL Server};"
"server=(local);"
"trusted_connection=no;"
"database=test;"
"uid=sa;"
"pwd=hello;" );
//"network=dbmssocn;" );
auto stmt = conn.prepare( "SELECT Name FROM Person WHERE 
PersonID = ?" );

stmt[0] = 1;
//auto stmt = conn.prepare( "SELECT Name FROM Person" );
auto rs = stmt.open();
printf( "%.*s\n\n", rs[0].name );
while( rs.next() )
printf( "%.*s\n", rs[0].asUtf8 );
}
catch( SQLException e )
{
foreach( rec; e )
{
printf( "%.*s - %d: %.*s\n", rec.state, rec.code, 
rec.msg );

}
}
}


Re: ODBC Library?

2014-11-10 Thread Sean Kelly via Digitalmars-d-learn

On Monday, 10 November 2014 at 16:01:21 UTC, Charles wrote:

Hi guys,

I've been looking and haven't found any libraries for ODBC or 
MSSQL. I saw some for D v1, but nothing for v2. Anyone know of 
any, or anyone know of a tutorial that I could use to create 
this myself?


Assuming you're using ODBC on Windows, here's an old port of an 
even older C++ wrapper I used to use for ODBC work.  It includes 
an ODBC header and library, so should serve as a good basis for 
whatever you're trying to do.  If you're on Unix, you may have to 
update the ODBC header a bit.  I got partway through that project 
back in the day but never finished: 
http://invisibleduck.org/sean/tmp/sql.zip


Re: ODBC Library?

2014-11-10 Thread Adam D. Ruppe via Digitalmars-d-learn

I kinda slapped one together but idk if it actually works.

https://github.com/adamdruppe/arsd

database.d and mssql.d from that repo. I haven't even tried to 
compile it for a while though, so it might not work at all.


The way I made it was to write the extern(C) function 
declarations and then call it like in C.


ODBC Library?

2014-11-10 Thread Charles via Digitalmars-d-learn

Hi guys,

I've been looking and haven't found any libraries for ODBC or 
MSSQL. I saw some for D v1, but nothing for v2. Anyone know of 
any, or anyone know of a tutorial that I could use to create this 
myself?


Thanks,
Charles