|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
Requesting help with some sql. I have to use Oracle for this which has been a complete and utter nightmare
+ Show Spoiler [code] +CREATE TRIGGER update_available_insert BEFORE INSERT ON loans BEGIN UPDATE available A SET A.amount=( SELECT (A2.amount - 1) FROM available A2 WHERE A2.lid = :new.lid ) WHERE :new.lid=A.lid; END update_available_insert;
I'm trying to create this trigger, but the syntax doesn't work. The terminal doesn't execute the command and no error is thrown about where or what syntax is wrong. I've never written triggers before so I'm not really sure what is going wrong. I can provide some more context on the tables if needed.
|
|
I fixed the code paste. I think this is just gonna be implemented in Java instead, but it'd be nice if the triggers worked instead.
|
Not too hot on Oracle, but isn't that inner query needlessly complex? Doesn't:
UPDATE available A SET A.amount= A.amount - 1 WHERE A.lid = :new.lid;
work?
Not that that should be your problem; your query seems valid, just needlessly complex.
|
I'm not a fan of moving your logic to the database. It should stay in the application.
Speaking of DB queries and all... Do you think it would be possible to turn this into a query (PostgreSQL)?
$string = 'AB.6740.D.336.2011.AP'; $regex = '/\.(\D)\./'; $alphabet = range('a', 'z');
preg_match($regex, $string, $matches);
if (!empty($matches)) { $letter = strtolower($matches[1]); $num = array_search($letter, $alphabet) + 1; $string = preg_replace($regex, sprintf('.%d.', $num), $string); }
echo $string;
This would have to update all the rows of course. The things I have to deal with...
I know that you can do WHERE field *~ '\.(\D)\.', but I'm not sure you can do replaces with regex.
|
On April 12 2016 10:03 Manit0u wrote: I'm not a fan of moving your logic to the database. It should stay in the application.
It's not really moving logic to the database though. I'm keeping an inventory so I want a count of those items. Having the logic in the application just means that I'd be querying the database and then updating the database. Placing that logic into the database instead means that when I insert or update a record the database triggers that update automatically. In this context I feel like the logic being in the database makes more sense.
I can't figure out how to get this trigger working and I'm not going to spend hours debugging some syntax bullshit when I can just implement it in the java in ten minutes though. One day I might fix it if I can figure out the trigger syntax, but without an error message I'm not sure I'd ever be able to figure it out. I'm pretty sure it's missing a comma/semicolon somewhere, but I don't know how to figure out where.
|
On April 12 2016 10:32 Blitzkrieg0 wrote:Show nested quote +On April 12 2016 10:03 Manit0u wrote: I'm not a fan of moving your logic to the database. It should stay in the application. It's not really moving logic to the database though. I'm keeping an inventory so I want a count of those items. Having the logic in the application just means that I'd be querying the database and then updating the database. Placing that logic into the database instead means that when I insert or update a record the database triggers that update automatically. In this context I feel like the logic being in the database makes more sense. I can't figure out how to get this trigger working and I'm not going to spend hours debugging some syntax bullshit when I can just implement it in the java in ten minutes though. One day I might fix it if I can figure out the trigger syntax, but without an error message I'm not sure I'd ever be able to figure it out. I'm pretty sure it's missing a comma/semicolon somewhere, but I don't know how to figure out where.
The thing is, with this approach you're tying your system to this specific database. I'm sure there are some lifecycleCallbacks or something in Hibernate or whatever you're using to do this for you automatically when you update your db. I know for certain that in PHP you can add pre-persist and post-persist triggers within your application. Since Java is more mature and advanced I think it should have something similar (it's not that different from adding created_at, updated_at, created_by, updated_by etc. fields and triggers).
|
On April 12 2016 10:03 Manit0u wrote:Speaking of DB queries and all... Do you think it would be possible to turn this into a query (PostgreSQL)? $string = 'AB.6740.D.336.2011.AP'; $regex = '/\.(\D)\./'; $alphabet = range('a', 'z');
preg_match($regex, $string, $matches);
if (!empty($matches)) { $letter = strtolower($matches[1]); $num = array_search($letter, $alphabet) + 1; $string = preg_replace($regex, sprintf('.%d.', $num), $string); }
echo $string;
This would have to update all the rows of course. The things I have to deal with... I know that you can do WHERE field *~ '\.(\D)\.', but I'm not sure you can do replaces with regex. Well, if it is a one-time thing you can just write out the update and do 26 replaces...
|
probably a simple error (java) i've been stuck on for a while. its confusing for me since this is code from what my teacher gave as reference and I don't spot any glaring errors. + Show Spoiler + public void actionPerformed(ActionEvent event) { String menuName; menuName = event.getActionCommand(); if (menuName.equals("Open")) openFile( ); //NullPE <------------------- else if (menuName.equals("Quit")) System.exit(0); } //actionPerformed private void openFile( ) { JFileChooser chooser; int status; chooser = new JFileChooser(); status = chooser.showOpenDialog(null); if (status == JFileChooser.APPROVE_OPTION) readSource(chooser.getSelectedFile()); //NullPE error <------------- else JOptionPane.showMessageDialog(null, "Open File dialog canceled"); } //openFile //...and so on
basically a snippet of part of my code to let my GUI read in a textfile and then append some words in it to text areas. the textfile is named "test.txt" and it is in the same folder as my src folder (next to it not inside src). I get the errors when I try to open the file with my GUI.
http://stackoverflow.com/questions/29982188/getting-a-exception-java-lang-nullpointerexception-cant-figure-out-why/29982222
a guy with pretty much the same exact code/problem as me (most likely same teacher, different problem) and it doesn't seem like he got it resolved there. tried the suggestions there to no avail. any help is appreciated. let me know if I didn't give enough information, didn't want to slab on too many lines of code.
edit:
On April 14 2016 17:19 solidbebe wrote: *never mind I missed a line*
Looks like getSelectedFile returns null. Have a look at that method, see what it does.
It returns the selected file+ Show Spoiler +https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html#getSelectedFile%28%29 , which should be fine since my readSource method uses File as a parameter.
edit2: thanks guys, slept on it and figured it out when I got back from school. turns out there was something wrong with my readSource method.
|
*never mind I missed a line*
Looks like getSelectedFile returns null. Have a look at that method, see what it does.
|
What is the full stack trace of the exception in your case?
EDIT: And the code of readSource()
|
So are you setting the file somewhere? Seems to be the selectedFile field is uninitialized.
|
That can't be the top of your stack trace. Chooser is guaranteed to be non-null there, so the only place your nullpointerexception can originate is from somewhere inside readSource.
getSelectedFile() is allowed to return null on that line, but you clearly don't want it to be, so why not add a test for that? In general, when you run into problems debugging your code, you have more tools available than just the stack trace. Use the Java debugger, junit tests and good old fashioned logging to figure out what is breaking. Don’t assume something is non-null, test that.
|
Zurich15313 Posts
So I have dabbled a bit with HTML5 with oData models to various backends. I finally feel like I am living in the future. Wish I hadn't neglected my JS for like 5 years, this is so much fun.
|
Germany2686 Posts
Does anyone have any experience with auth0 + s3 on Android? Or at least experience with S3 when authenticating users by token on Android?
|
I fucking hate javascript. Somebody please explain to me why it has a for .. in loop with the syntax exactly as if it will iterate over an Array, but if you actually use it to iterate over your array it fucks shit up (like not guaranteeing to iterate in order and other such stupid shit).
|
On April 13 2016 16:20 supereddie wrote:Show nested quote +On April 12 2016 10:03 Manit0u wrote:Speaking of DB queries and all... Do you think it would be possible to turn this into a query (PostgreSQL)? $string = 'AB.6740.D.336.2011.AP'; $regex = '/\.(\D)\./'; $alphabet = range('a', 'z');
preg_match($regex, $string, $matches);
if (!empty($matches)) { $letter = strtolower($matches[1]); $num = array_search($letter, $alphabet) + 1; $string = preg_replace($regex, sprintf('.%d.', $num), $string); }
echo $string;
This would have to update all the rows of course. The things I have to deal with... I know that you can do WHERE field *~ '\.(\D)\.', but I'm not sure you can do replaces with regex. Well, if it is a one-time thing you can just write out the update and do 26 replaces...
The thing is, I need to update over 120k rows in the db, replacing all .[LETTER]. patterns with the corresponding number.
|
On April 15 2016 06:56 Acrofales wrote: I fucking hate javascript. Somebody please explain to me why it has a for .. in loop with the syntax exactly as if it will iterate over an Array, but if you actually use it to iterate over your array it fucks shit up (like not guaranteeing to iterate in order and other such stupid shit).
It's not meant to iterate over the array. It's used to iterate over the properties of an object. It just happens that the element at each index of an array is stored as a property, and array[] index based access is the same as property access in Javascript.
|
On April 15 2016 07:56 Blisse wrote:Show nested quote +On April 15 2016 06:56 Acrofales wrote: I fucking hate javascript. Somebody please explain to me why it has a for .. in loop with the syntax exactly as if it will iterate over an Array, but if you actually use it to iterate over your array it fucks shit up (like not guaranteeing to iterate in order and other such stupid shit). It's not meant to iterate over the array. It's used to iterate over the properties of an object. It just happens that the element at each index of an array is stored as a property, and array[] index based access is the same as property access in Javascript. I understand that. Took me quite a bit of debugging to realize what was wrong in that code, though... because most languages that have for .. in loops (e.g. Java, Python, C#) simply enumerate the values in your array. And this isn't the only quirk of JS coopting common syntax and doing something completely different (== vs === for instance). It's very frustrating (to people like me who have to dabble in JS every now and then), and hence my reinforced putrid hatred of JS every time I have to work with it.
|
On April 15 2016 10:09 Acrofales wrote:Show nested quote +On April 15 2016 07:56 Blisse wrote:On April 15 2016 06:56 Acrofales wrote: I fucking hate javascript. Somebody please explain to me why it has a for .. in loop with the syntax exactly as if it will iterate over an Array, but if you actually use it to iterate over your array it fucks shit up (like not guaranteeing to iterate in order and other such stupid shit). It's not meant to iterate over the array. It's used to iterate over the properties of an object. It just happens that the element at each index of an array is stored as a property, and array[] index based access is the same as property access in Javascript. I understand that. Took me quite a bit of debugging to realize what was wrong in that code, though... because most languages that have for .. in loops (e.g. Java, Python, C#) simply enumerate the values in your array. And this isn't the only quirk of JS coopting common syntax and doing something completely different (== vs === for instance). It's very frustrating (to people like me who have to dabble in JS every now and then), and hence my reinforced putrid hatred of JS every time I have to work with it.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
JavaScript has foreach, so why not use that?
|
|
|
|