fruisenor | |
|
Re: Usar el sdk de adminpaq version 5.00 con c# - 2011-04-13 18:44 - Respuesta 2
adminpaq me proporciono un zip con ejemplos de como acceder al sdk (adminpaq 6.0) y vc#... si te interesa avisame como te lo envio por email acanche1
busca el manual en pdf que se encuentra en \archivos de programa\com.paqw\adminpaq\sdk\funciones sdk-admw.pdf
sin embargo aqui tengo una muestra del codigo que yo utilizo.. pero lo utilizo para escribir en las tablas de adminpaq siguiendo todas las reglas de negocio impuestas por el sistema (clasificaciones, etc).
si solo vas a leer, te recomiendo que utilices el visual fox pro ole odbc que puedes descargar de microsoft: http://www.microsoft.com/downloads/en/details.aspx?familyid=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&displaylang=en
ejemplo en vc#2008 (que debiera de funcionar transparente en 2010 para acceder al sdk de adminpaq)
using system.runtime.interopservices;
[dllimport("mgw_sdk.dll", entrypoint = "finicializasdk")]
public static extern int finicializasdk();
[dllimport("mgw_sdk.dll", entrypoint = "fterminasdk")]
public static extern void fterminasdk();
[dllimport("mgw_sdk.dll", entrypoint = "fabreempresa")]
public static extern int fabreempresa(string xempresa);
[dllimport("mgw_sdk.dll", entrypoint = "fcierraempresa")]
public static extern int fcierraempresa();
[dllimport("mgw_sdk.dll", entrypoint = "ferror")]
public static extern void ferror(int xerror, stringbuilder xmsg, int xmsglength);
private bool adminpaqerror(int xerror)
{
adminpaqlasterror = "";
if (xerror > 0)
{
try
{
stringbuilder s = new stringbuilder();
s.append('\0', 350);
ferror(xerror, s, 350);
adminpaqlasterror = "sdk adminpaq - [error: " + xerror.tostring() + "] " + unsetadminpaqstring(s.tostring()) +
" - numprod: " + alt_productnumber + " - activity: " + adminactivity;
adminactivity = "";
noncriticalerrorhandler("adminpaqerror", "err-xxx",
adminpaqlasterror,
"falla en " + adminpaqlasterror, "adminpaq sdk error", "");
}
catch (exception e)
{
criticalerrorhandler("adminpaqerror", "err-xxx",
"unable to start the adminpaq sdk - " + e.message + " stack: " + e.stacktrace,
"falla al inicializar el sdk de adminpaq", "adminpaq sdk", "");
}
}
return xerror == 0;
}
// adminpaq sdk string handle
private string setadminpaqstring(string xcad, int ilen)
{
string xret = xcad;
int nlen = ilen - 1;
if (xret.length > nlen) // check if is it greater
xret = xcad.substring(0, nlen); // if so, lets cut it... sorry
while (xret.length < nlen)
xret += " ";
if (whatisadminpaqsdkmode)
xret += "\0"; // old 'c' style char[] terminator
else
xret += " ";
return xret;
}
private string unsetadminpaqstring(string xcad)
{
string xret = xcad.replace("\0", ""); // remove the 'c' char[] terminator
return xret.trim(); // remove any redundant space
} | |
|
|