Cierto numero de filas en una .db

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Como crear un codigo que limite en el numero de filas de una .db ? :pc:

Hola...

Con una simple condicion.

Cuantas "filas" necesitas, 100??

Pues seria algo asi:
if (tbConsulta.Rows > nMaxFiles) then
     --Entonces haces el limitante.
     --Podria ser un booleano negativo
end
Claro, para que te funcione debes hacer una consulta previa a la base de datos, en el caso de que optes por un boolean en On Startup deberas de asignar ese valor como verdadero:

On Startup
nMaxFiles = 100;
q = "SELECT * FROM mitabla";
tbConsulta = SQLite.QueryToTable(db, q);

if (tbConsulta.Rows > nMax) then
     bPermitido = false;
else
     bPermitido = true;
end
Ya en el boton en el que vayas a ingresar datos...
if (bPermitido) then
     --Ingresas datos
else
     Dialog.Message("", "No hay mas registros");
end
Asi de sencillo.

Saludos.

Si te refieres al numero de filas que retorna una consulta , deberias usar LIMIT

Código: Seleccionar todo

"SELECT * FROM table_name LIMIT 100"

ya tenia un buen que no me conectaba ó seguía con algún proyecto, bueno gracias por las respuestas y si yo deseo solo limitar la escritura a 10 filas, les explico mas claro, con un Button creo mi .db
cupolimit = Input.GetText("CUPO")
sDatabaseFile = _SourceFolder .. "\\AutoPlay\\Docs\\".. cupolimit ..".db";

db = SQLite.Open(sDatabaseFile);
nLastError = Application.GetLastError();
if nLastError ~= SQLite.OK then
Dialog.Message("Error al abrir archivo", SQLite.GetLastErrorString());
end


SQLite.Query(db,"CREATE TABLE recargas(RecordID integer primary key, NOMBRE text, FECHA text)");


Page.Jump("CUPOS")
-----------------------------------------------------------------------
On Show

Input.SetText("CUPO", strpath1);
tabla = Label.GetText("CUPO")

nMaxFiles = 10;
q = "SELECT * FROM" .. tabla ..";
tbConsulta = SQLite.QueryToTable(db, q);
if (tbConsulta.Rows > nMax) then
     bPermitido = false;
else
     bPermitido = true;
end
------------------------------------------------------------------

En la Pagina CUPOS tengo las Input para anotar Nombre y Fecha, al momento compare, si ejemplo ya 10 filas que ya fueron ocupadas ya no acceder mas datos y negar guardado.

Button para guardado ó bloqueador de registros mayores a 10
function Escape (sSourceString)
	sSourceString = String.Replace(sSourceString, "'", "''", false);
	return sSourceString;
end


sNUMERO = Input.GetText("InputNUMERO");
sFOLIO = Input.GetText("InputFOLIO");
sSALDO = ComboBox.GetText("ComboBox_SALDO");
sVENDEDOR = Input.GetText("ASISTENTE");


if bNewRecord then
	SQLite.Query(db, "insert into recargas values(NULL, '"..sNOMBRE.."', '"..sFECHA.."')");
	nLastError = Application.GetLastError();
	if nLastError ~= SQLite.OK then
		Dialog.Message("Error: " .. nLastError, SQLite.GetLastErrorString());
	end
	
else
	SQLite.Query(db,"insert or replace into recargas values('".. nRecordID .."', '".. sNOMBRE.."', '"..sFECHA.."')");
	nLastError = Application.GetLastError();
	if nLastError ~= SQLite.OK then
		Dialog.Message("Error: " .. nLastError, SQLite.GetLastErrorString());
	end

end

if (bPermitido) then
     --Ingresas datos
else
     Dialog.Message("", "No hay mas registros");
end

SQLite.Close(db);


Ahora he tratado de acomodar los datos que me dieron, solo que en algunos lados cambian por el Valor de nombre de mi nombre que es indefinido y la cual para crear la base de datos la creo con un Button. cual seria el orden. para acomodarlo?.

Se que ando mal pero haber si me pueden solo corregir, no se si me explique lo que pretendo?

No no te has explicado... :hypno:

Lo que deseo en forma resumida es que a una tabla con nombre indefinido que guardo .. cupolimit .., a toda la que crea con nombre diferente, limitar solo la escritura a 10 filas y ya no guardar mas cambio superiores a 10.

mmm
Haber tu quieres que en una columna no se puedan ingresar mas de 10 registros?
si es asi ,algo asi:

ret=Select COUNT(Campo1) FROM TableName;

if ret[0] < 10 then

Insert into TableName (Campo1 ,campo2) Values ('valor','valor')

end

Ya casi ni he seguido intentar terminar mi proyecto, ya que trabajo en otra cosa pero bueno aqui le dedico un ratito.
FECHA = Input.GetText("FECHA")
sDatabaseFile = _SourceFolder .. "\\AutoPlay\\Docs\\".. FECHA ..".db";

db = SQLite.Open(sDatabaseFile);
nLastError = Application.GetLastError();
if nLastError ~= SQLite.OK then
Dialog.Message("Error al abrir la base de datos", SQLite.GetLastErrorString());
end


SQLite.Query(db,"CREATE TABLE recargas(RecordID integer primary key, NUMERO numeric, VENDEDOR tex)");
Si te das cuenta aquí deseo una consigna que solo me deje registrar 10 NUMEROS asi como 10 vendedores y nadamas, si desea registrar un 11, mande un mensaje de no poder registar mas datos, trato con sus ejemplos pero como ven mi nombre de la db. es indefinido.

Yo lo hari verificando numero de ingresos antes de insertar mas datos:
tDatas=SQLite.QueryToTable(db,"SELECT COUNT(VENDEDOR) AS count FROM recargas");
nLastError = Application.GetLastError();
if nLastError ~= SQLite.OK then
Dialog.Message("Error :", SQLite.GetLastErrorString());
end
nRegistros = tonumber(tData.Data[1]["count"]);
if (nRegistros >= 10) then
	Dialog.Message("Error", "No se pueden ingresar mas de 10 registros", MB_OK, MB_ICONSTOP);
	Application.ExitScript();
end