← All posts tagged code

DespicableMe

Народ, не пинайте, но я решил, что надо заняться кодом вплотную. Как-то всегда считал, что это слишком просто, чтобы уделять этому много времени. И вот сегодня увидел странную конструкцию, которая работает. Я такого не ожидал увидеть, если честно:
public static void main(String[] args) {
		int mas [];
		mas = new int [12];
		int n = 1;
		for (int i : mas) {
			mas [i] =  n++;
			System.out.println(mas[i]);
		}
	}
Сильно, пожалуйста, не пинать, Я только учусь. Хоть и поздно мне уже..

DespicableMe

Товарищи!
Если Вам не сложно, то дайте, пожалуйста, направление :-) Хотел спросить, но особо не у кого.
Суть вопроса вот в чём: есть некоторая БД. Количество таблиц в ней может изменяться в зависимости от необходимости и требований того, кто ею пользуется. То есть, в моём случае, у меня практически всегда, к примеру, усть таблица idx245a, но в ином случае может потребоваться таблица idx246 или 246a, idx241 и так далее. Таких таблиц может быть до двух тысяч и их наличие или отсутствие в БД не обязательно для разных людей, как я говорил выше.
Так вот, каким способом решаются такие проблемы в java? Как мне написать свой код так, чтобы можно было не описывая всех таблиц (я сейчас пытаюсь изучить ormlite), в будущем с ними работать, если это будет необходимо?

DespicableMe

ЧЯДНТ?
ERROR: Error executing 'CREATE  TABLE IF NOT EXISTS `mainSQL`.`BOOKSTATES` (
      `IDBS` INT NOT NULL AUTO_INCREMENT ,
      `RDR_ID` VARCHAR(128) NULL ,
      `INV_ID` INT NULL ,
      `DOC_ID` INT NULL ,
      `STATE` INT NULL ,
      `IDP` INT NULL ,
      `CHSDATE` DOUBLE NULL ,
      `RETDATE` DOUBLE NULL ,
      `FLAGS` VARCHAR(64) NULL ,
      `IDS` INT NULL ,
      `upsize_ts` TIMESTAMP(0) NULL ,
      PRIMARY KEY (`IDBS`) ,
      INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC) ,
      CONSTRAINT `BOOKSTATES_FK00`
        FOREIGN KEY (`IDP` )
        REFERENCES `mainSQL`.`BOOKPOINTS` (`IDP` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    COLLATE = utf8_general_ci'
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL ,
      PRIMARY KEY (`IDBS`) ,
      INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC)' at line 12.
    SQL Error: 1064

DespicableMe

ERROR: Error executing 'CREATE  TABLE IF NOT EXISTS `mainSQL`.`BOOKSTATES` (
      `IDBS` INT NOT NULL AUTO_INCREMENT ,
      `RDR_ID` VARCHAR(128) NULL ,
      `INV_ID` INT NULL ,
      `DOC_ID` INT NULL ,
      `STATE` INT NULL ,
      `IDP` INT NULL ,
      `CHSDATE` DOUBLE NULL ,
      `RETDATE` DOUBLE NULL ,
      `FLAGS` VARCHAR(64) NULL ,
      `IDS` INT NULL ,
      `upsize_ts` TIMESTAMP(0) NULL ,
      PRIMARY KEY (`IDBS`) ,
      INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC) ,
      CONSTRAINT `BOOKSTATES_FK00`
        FOREIGN KEY (`IDP` )
        REFERENCES `mainSQL`.`BOOKPOINTS` (`IDP` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    COLLATE = utf8_general_ci'
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL ,
      PRIMARY KEY (`IDBS`) ,
      INDEX `Rel_8A9BD279_80FB_450A` (`IDP` ASC)' at line 12.
    SQL Error: 1064

DespicableMe

*sql
Собственно возникла проблема при распечатке формуляра. Там где нужно было напечатать информацию в формуляре должно быть отверстие.
Соответственно, мне нужно было как-то переформатировать карточку. В штатном ViewCard ничего для этого не нашлось. Тогда я уже обратил внимание на csp.
Написал вот такой скрипт:~SqlExecQuery(select t090f, '-', t090e from INV where DOC_ID = ~GetDocId())
~GetSubTag(245a)
который, как очевидно, не работает.
Проблема в первой строке. Кто - нибудь может подсказать, в чём проблема?

DespicableMe

Уёбищные плюсы!
Смотрю в чужой код и вижу, что там все объявления, вся работа, все функции и вообще всё сделано в файлах *.h, но, мля! так же делать не правильно!
И при этом этот код работает. А я не могу написать даже элементарных функций. Эта хуйня выдаёт туеву хучу ошибок!
Страуструп - мудак.
Нет, я понимаю, что это эталонный учебник и вся фигня. Но почему прочитав половину этой книги я так и не смог ничего понять? Почему даже когда я писал на шарпах, читая Шилда, у меня было меньше ошибок?

DespicableMe

Народ, может поможете? Может кто-то сталкивался с таким?
Суть проблемы такова: когда-то давно (в 2009) некий хакер "восстановил" 700 записей БД. Каким образом он это сделал и сделал ли вообще - не ясно. Кто он и откуда - загадка. Но, с тех пор счётчик записей БД показывает неверные цифры. Они сильно меньше.
Как мне найти различия в структуре данных? Хотя, по идее, всё верно и всё на месте. Уточню, что была БД access, недавно я её перенёс на MS SQL.
Возможно, что различий в структуре нет.
Я уже пробовал найти пустые записи. Но ответ был отрицательным. Их нет.
Я пробовал найти одинаковые записи и в предыдущем своём посте написал запрос. Ответ отрицательный.
Возможно, что он заполнил таблицу случайными данными. Тогда найти их получается никак. Но это едва ли могло сказаться на счётчиках.
Я сейчас посмотрю ещё на запросы, которые использует программа, но едва ли что-то полезное там есть.

DespicableMe

Прекрасно!
Что выяснилось в ходе исследований на тему основной рабочей программы, из-за которой, в основном, меня взяли на работу: база данных изменена.
Да, да! Буквально!
Некоторый олух влез в эту программу, поковырялся в БД и изменил её структуру. Сказал, что это ошибка разработчиков и был таков. Но, что естественно, после этого база данных перестала работать так, как было задумано. А теперь это мой геморой.
Я уже пару месяцев в этом копаюсь, но подобные факты всплывают не так часто.
И так, комрады, что посоветуете? Как мне восстановить прежнюю структуру БД? Как найти те самые изменения, которые привели к нестабильности, если все изменения касались только БД?

DespicableMe

Собственно в чём трабл?
Я тут методом копипасты в основном набросал код, который, по идее выдаёт ссылки на файлы. Уже проверил всё, посмотрел, всё действительно так, как выдаётся (дерево каталогов действительно такое, какое должно быть). Код здесь http://pastebin.com/JMunVDtW
Но оно мне выдаёт 404. В адресной строке я вижу http://localhost:81/articles/12/11/JavaScript.pdf, а на страничке Not Found The requested URL /articles/12/11/JavaScript.pdf was not found on this server.
ЧЯДНТ?

DespicableMe

SELECT MAX(doc_id)
FROM doc AS T1
WHERE doc.item = T1.item
GROUP BY doc_id
ЧЯДНТ?
Всё это делалось как тестовый запрос, чтобы удалить дублирующие записи. Предыдущий админ сделал так, что в таблицу попали дублирующие записи с новыми id. Мне нужно их вычистить. Но сейчас я даже выборку сделать не могу нормальную.
Если спросите чем руководствовался, когда запрос писал, то http://www.sql-ex.ru/help/select17.php?Lang=0
Принцип тот же. Я хотел сделать выборку, не создавая никаких вспомогательных таблиц и удалить дубликаты.
Any ideas?

DespicableMe

Что-то фигня.. Я думал, что всё верно.. Народ, ЧЯДНТ?  Эта фигня упорно не хочет правильно сортировать, хотя код был нагло скопипащен с wiki.
#include <stdio.h>
#define SWAP(A,B) {(A)=(A)^(B); (B)=(A)^(B); (A)=(A)^(B);}
void m_sheker(int mas[], int n)
{
        int last = n-1, left = 1, right = n-1, j;
 
        do
        {
                for(j = right; j >= left; j--)
                {
                        if(mas[j-1] > mas[j])
                        {
                                SWAP(mas[j-1], mas[j]);
                                last = j;
                        }
                }
 
                left = last + 1;
 
                for(j = left; j <= right; j++)
                {
                        if(mas[j-1] > mas[j])
                        {
                                SWAP(mas[j-1], mas[j]);
                                last = j;
                        }
                }
 
                right = last-1;
 
        } while(left < right);
}

void main()
{
	int a[10]={19,11,12,15,14,13,16,17,10,18};
	m_sheker(a, 2);
	int count = 0;
	while (count<9)
		{
			printf("%i",a[count],"\t");
			printf("\t");
			count++;
		}
    printf("  hello, world\n");
}