Cómo dice Tincho sería interesante ver la sentencia de creación de la tabla.
En
sqlite nunca he incluido el campo autoincremental a
NULL en una sentencia
INSERT, la base de datos ya lo gestiona por si misma.
Si la sentencia de creación de la tabla es como esta:
Código:
CREATE TABLE Metadatos (
ID_Metadatos INTEGER PRIMARY KEY AUTOINCREMENT,
nombreArchivo TEXT UNIQUE NOT NULL );
Al intentar insertar registros con el mismo valor en el campo
nombreArchivo le dará error.
Si en algún momento
FMain.rutaNAME estaba vacío insertó un valor ".tex" en la tabla, si se repite la situación la segunda vez dará error por la restricción
UNIQUE en el campo.
Sobre el código que utiliza le recomiendo la siguiente modificación:
Código:
Dim sFile As String
If Conn Then
If Not FMain.rutaNAME Then Return 'Acciones a tomar si la variable está vacia.
sFile = FMain.rutaNAME & ".tex"
Contenido = Conn.Exec("SELECT * FROM metadatos WHERE nombreArchivo = &1", sFile)
If Contenido.Available And Contenido.Count > 0 Then
txtnombreArchivo.Text = Contenido["nombreArchivo"]
Else
Conn.Exec("INSERT INTO metadatos (nombreArchivo) VALUES (&1)", sFile)
Endif
Endif
Saludos, Harpo.