ERROR [07002] [Microsoft][Controlador ODBC Microsoft Access] (resuelto)
El problema.
OdbcCommand cmd = MyConx.CreateCommand();
cmd.CommandText = "INSERT INTO miTabla (campo1, campo2, campo3) VALUES(@campo1, @campo2, @campo3)";
cmd.Parameters.AddWithValue("@campo1", "valor campo 1");
cmd.Parameters.AddWithValue("@campo2", 2);
cmd.Parameters.AddWithValue("@campo3", DateTime.Now);
cmd.ExecuteNonQuery();
El error.
ERROR [07002] [Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 3.
Mi respuesta.
Que pasa? Ya agregue los tres parámetros! Porque .net no me quiere?
La Solucion.
OdbcCommand cmd = MyConx.CreateCommand();
cmd.CommandText = "INSERT INTO miTabla (campo1, campo2, campo3) VALUES(?, ?, ?)";
cmd.Parameters.AddWithValue("@campo1", "valor campo 1");
cmd.Parameters.AddWithValue("@campo2", 2);
cmd.Parameters.AddWithValue("@campo3", DateTime.Now);
cmd.ExecuteNonQuery();
la razón.
Access no soporta los parámetros nombrados con @
Los dejo con este post un poco corto pero conciso.
Saludes queridos lectores!
miércoles, octubre 21, 2009 | Etiquetas: Access, C#, Desarrollo, ERROR [07002], how to, Microsoft, On The Fly, Sql, Trucos | 0 Comments
Documental sobre visual Studio
Siempre es bueno saber algo de cultura general, por eso en esta ocasión les traigo un documental que consta de 2 capítulos donde hablan sobre la evolución de Visual Studio y el prometedor futuro de esta herramienta amada por todos los desarrolladores que trabajamos con plataformas Microsoft.
The Visual Studio Documentary: Part One
The Visual Studio Documentary: Part Two
mas info en http://channel9.msdn.com/shows/VisualStudioDocumentary
martes, octubre 06, 2009 | | 0 Comments
Yo También Soporto El Konami Code
Leyendo PixFans me encuentro con una lista de las webs que soportan el Código Konami (↑ ↑ ↓ ↓ ← → ← → B A) el mismo que se usa para desbloquear el arbitro perro en Super star Soccer para SNes. =D
Y con esto nace una pregunta.
P: ¿Como Puedo usar el Código Konami en Mi Web?
R: Agrega estas líneas a tu sitio.
<script src="http://konami-js.googlecode.com/svn/trunk/konami.js" type="text/javascript"></script>
<script type="text/javascript">
konami.load("http://es.wikipedia.org/wiki/Konami_Code")
</script>
Y listo estamos “Konami Code Ready” (↑ ↑ ↓ ↓ ← → ← → B A) Y [Enter]
Unos sitios de interés:
- Webs en las que funciona el Konami Code
- Código fuente del En JavaScript del Konami Code
- Proyecto Konami Code en Google Code
- Konami Code en la wikipedia
martes, mayo 12, 2009 | Etiquetas: asp.net, Desarrollo, how to, javascript, Trucos, Utilidades, Windows Mobile | 2 Comments
Algoritmos para detección de movimiento
Desde que era un “bebé desarrollador”, imaginaba lo complicado que podría ser un algoritmo de detección de movimiento, o algún modulo de inteligencia artificial. Pero luego de aprender mucho y rodar por la Internet me he sabido encontrar con que no es tan complicado “cuando te interesa y quieres aprender”, y ya que en estos meses me embarco en un proyecto personal, con el cual podemos interactuar con cámaras y otro tipo de sensores sencillo.
Tomé el tiempo de buscar la documentación y me he encontrado con esta maravilla.
AForge.NET framework: Contiene una serie de librerías que nos pueden ayudar en nuestros desarrollos basados en Inteligencia Artificial, Detección De Movimiento, Procesamiento de imagen, redes neuronales, robótica; además de contener ejemplos, Fuentes y una muy buena documentación, está distribuido bajo una licencia GNU.
(Qué más se le puede pedir a la vida?)
Unos sitios de interés:
- Everyone Loves Babies! Webcams and Motion Detection
- Motion Detection Algorithms
- AForge.NET Framework in Google Code
- Official AForge.NET Framework's website
miércoles, abril 15, 2009 | Etiquetas: C#, Desarrollo, Trucos, Utilidades | 0 Comments
Haciendo un PrintScreen con c# en 4 líneas
Ya que en los últimos días no he podido conciliar el sueño me he dedicado a hacer cositas que pienso algún día serán útiles o simplemente son inútiles pero divertidas. y entre esas cosas se me ocurrió hacer pantallazos de lo que “alguien” está haciendo. ¡Solo por curiosidad del gato!
Y he aquí las 4 líneas mágicas.
string filename = "C:\\imagen.png";
Bitmap bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen( Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
bmpScreenshot.Save(filename, ImageFormat.Png);
Los namespace a importar son:
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;
Y Sin usar P/Invoke. =D
jueves, marzo 05, 2009 | Etiquetas: C#, Desarrollo, how to, System.Forms, Utilidades | 2 Comments
Buscando Texto En Toda Una Base De Datos
Hay ocasiones en las que uno olvida cosas, como un día de aniversario, la clave de tu correo, con cuanto dinero dispones en tu cuenta bancaria, las llaves de la oficina y donde dejaste el control remoto. y piensas. “todo seria tan fácil si pudiera hacer una pregunta como”
SELECT ubicacion, * FROM MisCosas WHERE Nombre like ‘%control%’
Y te diera una lista de donde están todos tus controles, pero lastimosamente no es así. “aunque quizás algún día Google lo consiga”
Pero si lo que necesitas es encontrar un registro y no recuerdas el nombre de la tabla ni la base de datos, para estos casos me tope con un muy útil y sencillo script con el cual generamos un Procedimiento almacenado con el cual podemos buscar cualquier cosa dentro una base de datos, y todo será tan fácil como:
exec dbo.proc_search_for_text 'Nathan'
O si sabes el nombre de la base de datos
exec dbo.proc_search_for_text 'Everett', 'AdventureWorks'
Y obtendrás lo que buscas.
creo que es lógico decir que este tipo de procedimientos almacenados no es bueno usarlos en producción ni en ambientes volátiles.
El procedimiento lo pueden encontrar aquí! http://www.sqlservercentral.com/scripts/Miscellaneous/62066/
viernes, febrero 27, 2009 | Etiquetas: Busquedas, Scripts, Sql, Utilidades | 0 Comments
Mi Humilde Opinión Sobre C# 4.0
En las ultimas semanas eh visto como muchos desarrolladores andan muy emocionados con las nuevas características del lenguaje tan amado “C#”, y no voy a decir que no me emocionan… pero mas que emocionarme me asusta que están haciendo con C#, Ya voy a explicar porque.
Tipos dinámicos
Se agrego una palabra clave: “dynamic” con la cual podemos crear objetos dinámicos en tiempo de ejecución. Un ejemplo seria.
dynamic d = GetDynamicObject(…);
d.M(7);
al marcar de esta manera al objeto “d” estamos diciéndole al compilador que no verifique si “d” tiene un método llamado “M” que recibe un entero.
Eh Aquí Mi preocupación: -P: ¿entonces que pasa cuando “d” no tiene el método “M”? -R: ¡Obtenemos una Exception en tiempo de ejecución!,
Recuerdo que en lanzamiento de C# 2.0, hacían enfoque en los problemas con el casting en las Colecciones y nos trajeron los maravillosos Tipos Genéricos y con ellos muchas soluciones a errores en tiempo de ejecución, ¿y porque ahora recurrimos a tipos dinámicos que nos generan de nuevo problemas en tiempo de ejecución?.
Parámetros Opcionales
Esta nueva característica del lenguaje nos permite definir parámetros opcionales para los métodos. Un Ejemplo Seria.
int Suma(int x = 0, int y = 0, int z = 0)
{
return x + y + z;
}
con lo que podíamos llamar al método de estas siguientes formas.
int a = Suma(); // a = 0
int b = Suma(2); // b = 2
int c = Suma(2, 3); // c = 5
int d = Suma(2, 3, 4); // d = 9
Mi preocupación sobre este Punto se basa en la manera de como se trabaja actualmente con el polimorfismo y la sobre carga de métodos, se entiende que con esta nueva forma de hacer polimorfismo escribimos menos código, pero ¿hay necesidad de cambiar nuestros paradigmas de codificación?, ¿como afecta esto a nuestras arquitecturas?, son cosas que tendremos que esperar, además que me recuerda al feo VB 6.0.
Parámetros Nombrados
Esta nueva característica del lenguaje nos permite pasar los nombres de los parámetros con sus valores respectivos, Un Ejemplo Seria.
int Suma(int x = 0, int y = 0, int z = 0)
{
return x + y + z;
}
Con lo que podríamos hacer algo como esto.
int e = Suma(x:5, z:7); // e = 12
Esta nueva característica es muy agradable aunque no dejo de pensar en esos desarrolladores que no piensan en la legibilidad del código.
Mi Humilde Opinión
Es Bueno que un lenguaje evolucioné y que valla al ritmo del mercado y al parecer el mercado va por el lado de los lenguajes dinámicos, ya que se podría decir que varias de estas características nuevas vienen de lenguajes como PHP, Python, Delphi y hasta del mismo VB.net, no soy quien para aportar en el equipo de desarrollo de C# pero si puedo dejar mi humilde opinión!
Algunos Links De Interés
martes, noviembre 11, 2008 | Etiquetas: C#, C# 4.0, Desarrollo, Mi Mismo, yo mismo | 0 Comments
- Access
- asp.net
- Bienvenida
- BogotaDotNet
- Boinc
- Busquedas
- C#
- C# 4.0
- cambiar la configuracion regional
- Compact Framework
- configuracion regional
- Cursos Gratis
- DefaultLCID
- Desarrollo
- Dia del programador
- ERROR [07002]
- Eventos
- Formularios
- foro msdn
- Game Studio
- HKEY_LOCAL_MACHINE
- Hola Mundo
- how to
- Internet
- javascript
- kiosk mode
- LCID
- Linq
- linq/Sql
- MethodInvoker
- Mi Mismo
- Microsoft
- Moviles
- NetCf
- nls
- NLS Registry Settings
- Offset
- On The Fly
- Opennet
- ORM
- P/Invoke
- Patrones
- podcast
- RegFlushKey
- registro de windows
- Scripts
- secondnug
- Seguridad
- SIP
- Sql
- System.Forms
- Threading
- Trucos
- Utilidades
- VB VS C#
- Vilmente Copiado
- Vs2008
- WIKI
- Windows Ce
- Windows Mobile
- WPF
- XNA
- yo mismo
