Windows 8 és C++

Sziasztok,

A C++-os kliens írása közben belefutottam egy érdekes jelenségbe, amely Windows 8-on jön elő és habár elég egyszerű a megoldása gondoltam megosztom mással is hátha jól jön.

A C++ fejlesztéshez én Code:Blocks-ot használtam. A telepítés után az első hello word program futtatásánál a következő hibaüzenetet kaptam:

“HelloWorld – Debug: The compiler’s setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler.
Probably the toolchain path within the compiler options is not setup correctly?!
Goto “Settings->Compiler and debugger…->Global compiler settings->GNU GCC Compiler->Toolchain executables” and fix the compiler’s setup.
Skipping…
Nothing to be done (all items are up-to-date).”

A probléma megoldása a következő:

Meg kell nyitni a settings-ben található “Compiler settings…” menüpontot.

compilerMajd ezek után a “Toolchain executables” tabra navigálva meg kell nyomnunk az “Auto-Detect” gombot.

compilerSettingsEzek után már rendben fodult a kód.

 

 

CSV importálása MS SQL -be

Sziasztok,

CSV file-ok importálásával foglalkoztam MSSQL adatbázisba. Ez egy több féle képpen megközelíthető dolog. Az első amire én is rátaltam a BULK INSERTE-es megoldás ami a következő képpen néz ki:

CREATE TABLE Test
(ID INT,
FirstName VARCHAR(40),
LastName VARCHAR(40),
BirthDate SMALLDATETIME)

BULK INSERT Test
FROM ‘C:\test.csv’
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR=’,’,
ROWTERMINATOR = ‘\n’
)

A “FIRSTROW” azt a célt hivatott betölteni, hogy amennyiben a csv file-unk első pár sora tartalmazza a fejlécet úgy azt ki tudjuk hagyni, különben érvénytelen adat miatt hibát kapunk. Többi megadott paraméter éretelemszerűen a separáló karaktert, valamint a sor végén használt karaktert jelezi.

Ezzel a módszerrel sajnos nekem nem sikerült, (és a fórumok alapján még sok másnak sem) megoldani az exportot.

Az általam használt és működő megoldás az volt, hogy a csv file-t lementettem .xlsx-be majd ezt importáltam a már meglévő adatbázisomba. A feltétel csupán csak annyi, hogy a fejlécnek tartalmaznia kell, az adott oszlopok neveit, tehát header + csv data. Valamint le kell tölteni és installálni az Office System Driver-t. Erről a link-ről érhető el.

Ezek után a Microsoft SQL Server Management Studio-ban az adatbázison jobb klikk majd Tasks – Import Data:
import

Majd ezek után ki kell választanunk az adatforrást ami az adott esetben Microsoft Excel valamint a file elérését.
excelDataSourceKi kell választanunk az adatbázist, hogy hova szeretnénk importálni az adatokat.

dataBaseChoose

Amennyiben a file-unk érvényes, így a következő ablakokkal találkozunk, ahol lehetőségünk van változtatni a tábla nevén és az oszlopainak beállításain.

mappingAmennyiben az adatok megfelelőek úgy lehetőségünk van rá, hogy azonnal elkezdjük a folyamatot. Ha minden rendben zajlott akkor egy hasonló ablakkal kell, hogy találkozzunk:

finish

Az adatbázis táblánk elkészült az általunk módosított/jóváhagyott paraméterek mentén.

A kész táblában viszont nincsen elsődleges azonosító, amit a következő kódrészlettel pótoltam:

addKey

Végül az adatbázis tábla kész és még elsődleges kulcsot is tartalmaz.

Visual Studio 2012 és WCF Data Service

Sziasztok!

Ebben az írásban a WCF Data Service használatáról fogok írni Visual Studio 2012-őt használva.

Amikor Visual Studio 2012-őt használva elhatároztam, hogy csinálok egy Data Service-t nagy meglepődésemre sehol nem találtam a project template-k között. Jelenleg a 2012-es verzió esetén a Data Service template még csak RTM verzióban érhető el.

A következő linkről érhető el az installer:

http://www.microsoft.com/en-us/download/details.aspx?id=35840

A célom egy OData service létrehozása volt azonban a template installálása nem oldotta meg a problémámat.

Elösször is ehhez installálnom kellet pár NuGet package-t:

  • EdmLib
  • ODataLib
  • WCF Data Services Client
  • WCF Data Services Server
  • EntityFramework

Ezek után ha létrehozunk egy Data Service-t majd megadjuk a kért ObjectContext-et elméletben az alkalmazásunk működik. Sajnos csak elméletben.

A probléma az EntityFramework új verziója amely másképp kezeli az ObjectContext-et, azonban a WCF Data Service-t erre még nem készítették fel, így nem kompatibilisek.

A megoldás:

Installálni kell egy újabb NuGet package-et:
Install-Package Microsoft.OData.EntityFrameworkProvider -Pre

Majd ezek után a Data Service osztályunk nem a DataService osztályból kell, hogy öröklődjön hanem az EntityFrameworkDataService osztályból.

Ezek után már az service képes ellátni a tényleges feladatát.